blob: f17414f22cf071c65a79d7f93ece1160814d660f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# xfreerdp completion -*- shell-script -*-
_xfreerdp()
{
local cur prev words cword
_init_completion -n : || return
case $prev in # old/dash syntax
-k)
COMPREPLY=($(compgen -W '$("$1" --kbd-list |
awk "/^0x/ { print \$1 }")' -- "$cur"))
return
;;
-a)
COMPREPLY=($(compgen -W '8 15 16 24 32' -- "$cur"))
return
;;
-x)
COMPREPLY=($(compgen -W 'broadband modem lan' -- "$cur"))
return
;;
--plugin)
COMPREPLY=($(compgen -W 'cliprdr rdpsnd rdpdr' -- "$cur"))
return
;;
esac
case $cur in # new/slash syntax
/kbd:*)
COMPREPLY=($(compgen -W '$("$1" /kbd-list |
awk "/^0x/ { print \$1 }")' -- "${cur#/kbd:}"))
return
;;
/bpp:*)
COMPREPLY=($(compgen -W '8 15 16 24 32' -- "${cur#/bpp:}"))
return
;;
/*:* | /help | /version | -h | --help | --version)
return
;;
esac
if [[ $cur == /* ]]; then
COMPREPLY=($(compgen -W '$("$1" --help |
awk "\$1 ~ /^\\// && \$1 !~ /^.(flag\$|option:)/ { sub(\":.*\",\":\",\$1); print \$1 }")' \
-- "$cur"))
[[ ${COMPREPLY-} == *: ]] && compopt -o nospace
elif [[ $cur == [+-]* ]]; then
local char=${cur:0:1}
local help="$($1 --help)"
if [[ $help == */help* ]]; then # new/slash syntax
COMPREPLY=($(compgen -W '$(awk "
\$1 ~ /^[+-]/ && \$1 !~ /^.toggle\$/ { sub(\"^.\",\"$char\",\$1); print \$1 }
" <<<"$help")' -- "$cur"))
else # old/dash syntax
COMPREPLY=($(_parse_help - <<<"$help"))
COMPREPLY=($(compgen -W '${COMPREPLY[@]%:}' -- "$cur"))
fi
else
COMPREPLY=($(compgen -W "$(awk '{print $1}' ~/.freerdp/known_hosts \
2>/dev/null)" -- "$cur"))
fi
} &&
complete -F _xfreerdp xfreerdp
# ex: filetype=sh
|