]>
Commit | Line | Data |
---|---|---|
76dceb10 SK |
1 | _blkid_module() |
2 | { | |
15a74f75 SK |
3 | local cur prev OPTS OUTPUT_ALL |
4 | OUTPUT_ALL='' | |
76dceb10 SK |
5 | COMPREPLY=() |
6 | cur="${COMP_WORDS[COMP_CWORD]}" | |
7 | prev="${COMP_WORDS[COMP_CWORD-1]}" | |
8 | case $prev in | |
15a74f75 | 9 | '-c'|'--cache-file') |
ce3e6b15 | 10 | local IFS=$'\n' |
76dceb10 SK |
11 | compopt -o filenames |
12 | COMPREPLY=( $(compgen -f -- $cur) ) | |
13 | return 0 | |
14 | ;; | |
15a74f75 | 15 | '-o'|'--output') |
76dceb10 SK |
16 | COMPREPLY=( $(compgen -W "value device export full" -- $cur) ) |
17 | return 0 | |
18 | ;; | |
15a74f75 | 19 | '-s'|'--match-tag') |
76dceb10 SK |
20 | COMPREPLY=( $(compgen -W "tag" -- $cur) ) |
21 | return 0 | |
22 | ;; | |
15a74f75 SK |
23 | '-t'|'--match-token') |
24 | COMPREPLY=( $(compgen -W "TYPE= LABEL= UUID=" -- $cur) ) | |
76dceb10 SK |
25 | return 0 |
26 | ;; | |
15a74f75 | 27 | '-L'|'--label') |
76dceb10 SK |
28 | COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-label/ 2>/dev/null && echo *)" -- $cur) ) |
29 | return 0 | |
30 | ;; | |
15a74f75 | 31 | '-U'|'--uuid') |
76dceb10 SK |
32 | COMPREPLY=( $(compgen -W "$(cd /dev/disk/by-uuid/ 2>/dev/null && echo *)" -- $cur) ) |
33 | return 0 | |
34 | ;; | |
15a74f75 | 35 | '-S'|'--size') |
76dceb10 SK |
36 | COMPREPLY=( $(compgen -W "size" -- $cur) ) |
37 | return 0 | |
38 | ;; | |
15a74f75 | 39 | '-O'|'--offset') |
76dceb10 SK |
40 | COMPREPLY=( $(compgen -W "offset" -- $cur) ) |
41 | return 0 | |
42 | ;; | |
15a74f75 SK |
43 | '-u'|'--usages') |
44 | OUTPUT_ALL={,no}{filesystem,raid,crypto,other} | |
76dceb10 | 45 | ;; |
15a74f75 SK |
46 | '-n'|'--match-types') |
47 | OUTPUT_ALL=" | |
48 | $(awk '{print $NF}' /proc/filesystems) | |
49 | $(\ls /lib/modules/$(uname -r)/kernel/fs) | |
50 | " | |
76dceb10 | 51 | ;; |
15a74f75 | 52 | '-h'|'--help'|'-V'|'--version') |
d4f9b8d7 VS |
53 | return 0 |
54 | ;; | |
76dceb10 | 55 | esac |
15a74f75 SK |
56 | if [ -n "$OUTPUT_ALL" ]; then |
57 | local prefix realcur OUTPUT_ALL OUTPUT | |
58 | realcur="${cur##*,}" | |
59 | prefix="${cur%$realcur}" | |
60 | for WORD in $OUTPUT_ALL; do | |
61 | if ! [[ $prefix == *"$WORD"* ]]; then | |
abbcec4f | 62 | OUTPUT="$WORD ${OUTPUT:-""}" |
15a74f75 SK |
63 | fi |
64 | done | |
65 | compopt -o nospace | |
66 | COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- "$realcur") ) | |
67 | return 0 | |
68 | fi | |
76dceb10 SK |
69 | case $cur in |
70 | -*) | |
15a74f75 SK |
71 | OPTS=" |
72 | --cache-file | |
73 | --no-encoding | |
74 | --garbage-collect | |
75 | --output | |
76 | --list-filesystems | |
77 | --match-tag | |
78 | --match-token | |
79 | --list-one | |
80 | --label | |
81 | --uuid | |
82 | --probe | |
83 | --info | |
84 | --size | |
85 | --offset | |
86 | --usages | |
87 | --match-types | |
ba5e7b7e | 88 | --no-part-details |
15a74f75 SK |
89 | --help |
90 | --version | |
91 | " | |
76dceb10 SK |
92 | COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) |
93 | return 0 | |
94 | ;; | |
95 | esac | |
0c8865f8 | 96 | compopt -o bashdefault -o default |
53154dae | 97 | COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) |
76dceb10 SK |
98 | return 0 |
99 | } | |
100 | complete -F _blkid_module blkid |