blob: 8cfac76765df4ae956d3425878ee6dcce9bb84fb (
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
|
# cryptdisks_{start,stop} completion by first column of crypttab
#
# Copyright 2013 Claudius Hubig <cl_crds@chubig.net>, 2-clause BSD
_cryptdisks() {
local action="$1" t
for t in $( mawk -vt="${COMP_WORDS[COMP_CWORD]}" \
'($1 !~ /^#/ && index($1,t) == 1) {print $1}' \
"${TABFILE-"/etc/crypttab"}" ); do
if [ "$action" = start -a ! -e "/dev/mapper/$t" ] ||
[ "$action" = stop -a -e "/dev/mapper/$t" ]; then
COMPREPLY+=( "$t" )
fi
done
return 0;
}
_cryptdisks_start() {
local i include_options=y
COMPREPLY=()
for (( i=0; i < COMP_CWORD-1; i++ )); do
if [ "${COMP_WORDS[i]}" = "--" ] || [[ "${COMP_WORDS[i]}" != -* ]]; then
include_options=n
break
fi
done
if [ "$include_options" = "y" ]; then
for i in "-r" "--readonly" "--"; do
if [[ "$i" == "${COMP_WORDS[COMP_CWORD]}"* ]]; then
COMPREPLY+=( "$i" )
fi
done
fi
_cryptdisks start "$@"
}
_cryptdisks_stop() {
COMPREPLY=()
_cryptdisks stop "$@";
}
complete -F _cryptdisks_start cryptdisks_start
complete -F _cryptdisks_stop cryptdisks_stop
|