Improved vncviewer completion
- Split vncviewer completion in _tightvncviewer() and _xvn4viewer() - Vncviewer completion automatically selects right completion at run-time. Default is _tightvncviewer(). - Added _realcommand() global function
This commit is contained in:
parent
6d7d79c32d
commit
c995f10832
@ -540,6 +540,25 @@ _usergroup()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Get real command.
|
||||||
|
# - arg: $1 Command
|
||||||
|
# - stdout: Filename of command in PATH with possible symbolic links resolved.
|
||||||
|
# Empty string if command not found.
|
||||||
|
# - return: True (0) if command found, False (> 0) if not.
|
||||||
|
_realcommand() {
|
||||||
|
type -P "$1" > /dev/null && {
|
||||||
|
if type -p realpath > /dev/null; then
|
||||||
|
realpath "$(type -P "$1")"
|
||||||
|
elif type -p readlink > /dev/null; then
|
||||||
|
readlink -f "$(type -P "$1")"
|
||||||
|
else
|
||||||
|
type -P "$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# this function count the number of mandatory args
|
# this function count the number of mandatory args
|
||||||
#
|
#
|
||||||
_count_args()
|
_count_args()
|
||||||
@ -9063,35 +9082,6 @@ _smartctl()
|
|||||||
complete -F _smartctl smartctl
|
complete -F _smartctl smartctl
|
||||||
}
|
}
|
||||||
|
|
||||||
# vncviewer(1) completion
|
|
||||||
#
|
|
||||||
have vncviewer &&
|
|
||||||
_vncviewer()
|
|
||||||
{
|
|
||||||
local cur prev
|
|
||||||
local -a config
|
|
||||||
|
|
||||||
COMPREPLY=()
|
|
||||||
cur=`_get_cword`
|
|
||||||
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
||||||
|
|
||||||
case "$prev" in
|
|
||||||
-via)
|
|
||||||
_known_hosts -a
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
# ssh into the the server, find and ping the broadcast address, then
|
|
||||||
# sort and show the results.
|
|
||||||
COMPREPLY=( $( ssh -o 'Batchmode yes' $prev \
|
|
||||||
"ping -bnc 4 255.255.255.255" 2>/dev/null | \
|
|
||||||
awk -F ' ' '{print $4}' | \
|
|
||||||
sort -n | uniq | egrep '[0-9]+\.[0-9]+\.' 2>/dev/null ) )
|
|
||||||
esac
|
|
||||||
|
|
||||||
return 0
|
|
||||||
} &&
|
|
||||||
complete -F _vncviewer vncviewer
|
|
||||||
|
|
||||||
# sysctl(8) completion
|
# sysctl(8) completion
|
||||||
#
|
#
|
||||||
have sysctl &&
|
have sysctl &&
|
||||||
|
@ -1,13 +1,68 @@
|
|||||||
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
|
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
|
||||||
# ex: ts=8 sw=8 noet filetype=sh
|
# ex: ts=8 sw=8 noet filetype=sh
|
||||||
#
|
#
|
||||||
# bash completion for vncviewer (4.1.1)
|
# bash completion for vncviewer
|
||||||
|
|
||||||
|
|
||||||
|
_vncviewer_bootstrap() {
|
||||||
|
local fname
|
||||||
|
case "$(_realcommand vncviewer)" in
|
||||||
|
# If `vncviewer' not installed, default file-dir completion
|
||||||
|
'') _filedir `_get_cword` ;;
|
||||||
|
*xvnc4viewer) fname=_xvnc4viewer ;;
|
||||||
|
*tightvncviewer|*) fname=_tightvncviewer ;;
|
||||||
|
esac
|
||||||
|
if [ $fname ]; then
|
||||||
|
# Install real completion for subsequent completions
|
||||||
|
complete -F $fname vncviewer
|
||||||
|
$fname # Generate completions once for now
|
||||||
|
unset -f _vncviewer_bootstrap
|
||||||
|
fi
|
||||||
|
} &&
|
||||||
|
complete -F _vncviewer_bootstrap vncviewer
|
||||||
|
|
||||||
|
|
||||||
|
_tightvncviewer()
|
||||||
|
{
|
||||||
|
local cur prev
|
||||||
|
|
||||||
|
COMPREPLY=()
|
||||||
|
cur=`_get_cword`
|
||||||
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
|
||||||
|
case $prev in
|
||||||
|
-passwd)
|
||||||
|
_filedir
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
-encodings)
|
||||||
|
COMPREPLY=( $( compgen -W 'copyrect tight hextile zlib \
|
||||||
|
corre rre raw' -- $cur ) )
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
-via)
|
||||||
|
_known_hosts
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$cur" == -* ]]; then
|
||||||
|
COMPREPLY=( $( compgen -W '-help -listen -via -shared -noshared\
|
||||||
|
-viewonly -fullscreen -noraiseonbeep -passwd -encodings\
|
||||||
|
-bgr233 -owncmap -truecolour -truecolor -depth \
|
||||||
|
-compresslevel -quality -nojpeg -nocursorshape \
|
||||||
|
-x11cursor' -- $cur ) )
|
||||||
|
else
|
||||||
|
_known_hosts
|
||||||
|
fi
|
||||||
|
} &&
|
||||||
|
complete -F _tightvncviewer tightvncviewer
|
||||||
|
|
||||||
|
|
||||||
# NOTE: - VNC Viewer options are case-insensivite. Preferred case is taken from -help.
|
# NOTE: - VNC Viewer options are case-insensivite. Preferred case is taken from -help.
|
||||||
# - Both single dash (-) and double dash (--) are allowed as option prefix
|
# - Both single dash (-) and double dash (--) are allowed as option prefix
|
||||||
have vncviewer &&
|
_xvnc4viewer()
|
||||||
_vncviewer()
|
|
||||||
{
|
{
|
||||||
local cur prev
|
local cur prev
|
||||||
|
|
||||||
@ -68,4 +123,4 @@ _vncviewer()
|
|||||||
_known_hosts
|
_known_hosts
|
||||||
fi
|
fi
|
||||||
} &&
|
} &&
|
||||||
complete -F _vncviewer vncviewer
|
complete -F _xvnc4viewer xvnc4viewer
|
Loading…
x
Reference in New Issue
Block a user