]>
Commit | Line | Data |
---|---|---|
bf60993c SK |
1 | _partx_module() |
2 | { | |
b5b80e5a | 3 | local cur prev OPTS OUTPUT_ALL |
bf60993c | 4 | COMPREPLY=() |
b5b80e5a | 5 | OUTPUT_ALL="NR START END SECTORS SIZE NAME UUID TYPE FLAGS SCHEME" |
bf60993c SK |
6 | cur="${COMP_WORDS[COMP_CWORD]}" |
7 | prev="${COMP_WORDS[COMP_CWORD-1]}" | |
8 | case $prev in | |
9 | '-n'|'--nr') | |
10 | return 0 | |
11 | ;; | |
12 | '-o'|'--output') | |
b5b80e5a BE |
13 | local realcur prefix OUTPUT |
14 | realcur="${cur##*,}" | |
15 | prefix="${cur%$realcur}" | |
16 | for WORD in $OUTPUT_ALL; do | |
17 | if ! [[ $prefix == *"$WORD"* ]]; then | |
abbcec4f | 18 | OUTPUT="$WORD ${OUTPUT:-""}" |
b5b80e5a BE |
19 | fi |
20 | done | |
bf60993c | 21 | compopt -o nospace |
b5b80e5a | 22 | COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- $realcur) ) |
bf60993c SK |
23 | return 0 |
24 | ;; | |
99d8ed0a SK |
25 | '-S'|'--sector-size') |
26 | COMPREPLY=( $(compgen -W "size" -- $cur) ) | |
27 | return 0 | |
28 | ;; | |
bf60993c | 29 | '-t'|'--type') |
2cdaf94b | 30 | COMPREPLY=( $(compgen -W "$(partx --list-types)" -- $cur) ) |
bf60993c SK |
31 | return 0 |
32 | ;; | |
d4f9b8d7 VS |
33 | '-h'|'--help'|'-V'|'--version') |
34 | return 0 | |
35 | ;; | |
bf60993c SK |
36 | esac |
37 | case $cur in | |
38 | -*) | |
99d8ed0a SK |
39 | OPTS=" |
40 | --add | |
41 | --delete | |
42 | --update | |
43 | --show | |
44 | --bytes | |
45 | --noheadings | |
46 | --nr | |
47 | --output | |
ba1c9075 | 48 | --output-all |
99d8ed0a SK |
49 | --pairs |
50 | --raw | |
51 | --sector-size | |
52 | --type | |
2cdaf94b | 53 | --list-types |
99d8ed0a SK |
54 | --verbose |
55 | --help | |
56 | --version | |
57 | " | |
bf60993c SK |
58 | COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) ) |
59 | return 0 | |
60 | ;; | |
61 | esac | |
53154dae | 62 | COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) ) |
bf60993c SK |
63 | return 0 |
64 | } | |
65 | complete -F _partx_module partx |