diff options
author | David Paleino <dapal@debian.org> | 2011-02-06 21:26:41 +0100 |
---|---|---|
committer | David Paleino <dapal@debian.org> | 2011-02-06 21:26:41 +0100 |
commit | 9920a8faedf704420571d8072ccab27e9dac40ba (patch) | |
tree | 733edf3b07be06c130d04aaa1884213326722cad /completions/smartctl | |
parent | f9748115fb4b2950fb4df7535fb723c4affde078 (diff) | |
download | bash-completion-9920a8faedf704420571d8072ccab27e9dac40ba.tar.gz |
Imported Upstream version 1.3upstream/1.3
Diffstat (limited to 'completions/smartctl')
-rw-r--r-- | completions/smartctl | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/completions/smartctl b/completions/smartctl new file mode 100644 index 00000000..74e42816 --- /dev/null +++ b/completions/smartctl @@ -0,0 +1,146 @@ +# bash completion for smartctl(8) + +have smartctl && +{ +_smartctl_quietmode() +{ + COMPREPLY=( $( compgen -W 'errorsonly silent noserial' -- "$cur" ) ) +} +_smartctl_device() +{ + local i opts='ata scsi sat marvell hpt cciss' + for (( i=0; i <= 31; i++ )) ; do + opts="$opts 3ware,$i" + done + COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) ) +} +_smartctl_tolerance() +{ + COMPREPLY=( $( compgen -W 'normal conservative permissive \ + verypermissive' -- "$cur" ) ) +} +_smartctl_badsum() +{ + COMPREPLY=( $( compgen -W 'warn exit ignore' -- "$cur" ) ) +} +_smartctl_report() +{ + COMPREPLY=( $( compgen -W 'ioctl ataioctl scsiioctl' -- "$cur" ) ) +} +_smartctl_powermode() +{ + COMPREPLY=( $( compgen -W 'never sleep standby idle' -- "$cur" ) ) +} +_smartctl_feature() +{ + COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) ) +} +_smartctl_log() +{ + COMPREPLY=( $( compgen -W 'error selftest selective directory' -- "$cur" ) ) +} +_smartctl_vendorattribute() +{ + COMPREPLY=( $( compgen -W 'help 9,minutes 9,seconds 9,halfminutes \ + 9,temp 192,emergencyretractcyclect 193,loadunload \ + 194,10xCelsius 194,unknown 198,offlinescanuncsectorct \ + 200,writeerrorcount 201,detectedtacount 220,temp' -- "$cur" ) ) +} +_smartctl_firmwarebug() +{ + COMPREPLY=( $( compgen -W 'none samsung samsung2 samsung3 swapid' \ + -- "$cur" ) ) +} +_smartctl_presets() +{ + COMPREPLY=( $( compgen -W 'use ignore show showall' -- "$cur" ) ) +} +_smartctl_test() +{ + COMPREPLY=( $( compgen -W 'offline short long conveyance select \ + afterselect,on afterselect,off pending scttempint' -- "$cur" ) ) +} + + +_smartctl() +{ + local cur prev split=false + + COMPREPLY=() + _get_comp_words_by_ref cur prev + + _split_longopt && split=true + + case $prev in + -q|--quietmode) + _smartctl_quietmode + ;; + -d|--device) + _smartctl_device + return 0 + ;; + -t|--tolerance) + _smartctl_tolerance + return 0 + ;; + -b|--badsum) + _smartctl_badsum + return 0 + ;; + -r|--report) + _smartctl_report + return 0 + ;; + -n|--nocheck) + _smartctl_powermode + return 0 + ;; + -s|--smart|-o|--offlineauto|-S|--saveauto) + _smartctl_feature + return 0 + ;; + -l|--log) + _smartctl_log + return 0 + ;; + -v|--vendorattribute) + _smartctl_vendorattribute + return 0 + ;; + -F|--firmwarebug) + _smartctl_firmwarebug + return 0 + ;; + -P|--presets) + _smartctl_presets + return 0 + ;; + -t|--test) + _smartctl_test + return 0 + ;; + esac + + $split && return 0 + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '--help --version --info --all --quietmode \ + --device --tolerance --badsum --report --nocheck --smart \ + --offlineauto --saveauto --health --capabilities --attributes \ + --log --vendorattribute --firmwarebug --presets --test --captive \ + --abort' -- "$cur" ) ) + else + cur=${cur:=/dev/} + _filedir + fi +} +complete -F _smartctl smartctl +} + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh |