bash-completion: use swapon label and uuid listing support

Simplifies the script, and makes swapoff to work for files when get
requests by label or uuid.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2014-10-26 22:07:09 +00:00 committed by Karel Zak
parent 53154dae39
commit e3da3b39b5
2 changed files with 4 additions and 20 deletions

View File

@ -9,25 +9,11 @@ _swapoff_module()
return 0
;;
'-U'|'UUID=')
# only works for block devices, i.e., not for swap files.
local SWAPS
SWAPS="$(swapon --show=TYPE,NAME --raw --noheading | \
awk '$1 !~ /file/ { print $2 }')"
[ -z "$SWAPS" ] && return 0
local UUIDS
UUIDS="$(lsblk -nrp -o UUID "$SWAPS")"
COMPREPLY=( $(compgen -W "$UUIDS" -- $cur) )
COMPREPLY=( $(compgen -W "$(swapon --show=UUID --noheading)" -- $cur) )
return 0
;;
'-L'|'LABEL=')
# only works for block devices, i.e., not for swap files.
local SWAPS
SWAPS="$(swapon --show=TYPE,NAME --raw --noheading | \
awk '$1 !~ /file/ { print $2 }')"
[ -z "$SWAPS" ] && return 0
local LABELS
LABELS="$(lsblk -nrp -o LABEL "$SWAPS")"
COMPREPLY=( $(compgen -W "$LABELS" -- $cur) )
COMPREPLY=( $(compgen -W "$(swapon --show=LABEL --noheading)" -- $cur) )
return 0
;;
'-h'|'--help'|'-V'|'--version')
@ -46,9 +32,7 @@ _swapoff_module()
return 0
;;
esac
local DEVS
DEVS="$(swapon --show=NAME --raw --noheading)"
COMPREPLY=( $(compgen -W "$DEVS" -- $cur) )
COMPREPLY=( $(compgen -W "$(swapon --show=NAME --raw --noheading)" -- $cur) )
return 0
}
complete -F _swapoff_module swapoff

View File

@ -14,7 +14,7 @@ _swapon_module()
'--show')
# FIXME: how to append to a string with compgen?
local OUTPUT
OUTPUT="NAME TYPE SIZE USED PRIO"
OUTPUT="NAME TYPE SIZE USED PRIO UUID LABEL"
compopt -o nospace
COMPREPLY=( $(compgen -W "$OUTPUT" -S ',' -- $cur) )
return 0