diff options
Diffstat (limited to 'completions/lvm')
-rw-r--r-- | completions/lvm | 261 |
1 files changed, 86 insertions, 175 deletions
diff --git a/completions/lvm b/completions/lvm index ba0720ed..fb83a3fb 100644 --- a/completions/lvm +++ b/completions/lvm @@ -1,26 +1,38 @@ # bash completion for lvm -*- shell-script -*- +_lvm_filedir() +{ + cur=${cur:-/dev/} + _filedir +} + _lvm_volumegroups() { COMPREPLY=( $(compgen -W "$( vgscan 2>/dev/null | \ - sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- "$cur" ) ) + command sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- "$cur" ) ) +} + +_lvm_physicalvolumes_all() +{ + COMPREPLY=( $(compgen -W "$( pvscan 2>/dev/null | \ + command sed -n -e 's|^.*PV \([^ ]*\) .*|\1|p' )" -- "$cur" ) ) } _lvm_physicalvolumes() { COMPREPLY=( $(compgen -W "$( pvscan 2>/dev/null | \ - sed -n -e 's|^.*PV \(.*\) VG.*$|\1|p' )" -- "$cur" ) ) + command sed -n -e 's|^.*PV \(.*\) VG.*$|\1|p' )" -- "$cur" ) ) } _lvm_logicalvolumes() { COMPREPLY=( $(compgen -W "$( lvscan 2>/dev/null | \ - sed -n -e "s|^.*'\(.*\)'.*$|\1|p" )" -- "$cur" ) ) + command sed -n -e "s|^.*'\(.*\)'.*$|\1|p" )" -- "$cur" ) ) if [[ $cur == /dev/mapper/* ]]; then _filedir local i for i in ${!COMPREPLY[@]}; do - [[ ${COMPREPLY[i]} == */control ]] && unset COMPREPLY[i] + [[ ${COMPREPLY[i]} == */control ]] && unset 'COMPREPLY[i]' done fi } @@ -85,18 +97,18 @@ _pvs() -o|-O|--options|--sort) COMPREPLY=( $( compgen -W 'pv_fmt pv_uuid pv_size pv_free pv_used pv_name pv_attr pv_pe_count pv_pe_alloc_count' -- "$cur" ) ) - return 0 + return ;; --units) _lvm_units - return 0 + return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else - _lvm_physicalvolumes + _lvm_physicalvolumes_all fi } && complete -F _pvs pvs @@ -109,14 +121,14 @@ _pvdisplay() case $prev in --units) _lvm_units - return 0 + return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else - _lvm_physicalvolumes + _lvm_physicalvolumes_all fi } && complete -F _pvdisplay pvdisplay @@ -129,14 +141,14 @@ _pvchange() case $prev in -A|-x|--autobackup|--allocatable) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else - _lvm_physicalvolumes + _lvm_physicalvolumes_all fi } && complete -F _pvchange pvchange @@ -149,26 +161,26 @@ _pvcreate() case $prev in --restorefile) _filedir - return 0 + return ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) - return 0 + return ;; --metadatacopies) COMPREPLY=( $( compgen -W '0 1 2' -- "$cur" ) ) - return 0 + return ;; --metadatasize|--setphysicalvolumesize) _lvm_sizes - return 0 + return ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else - _lvm_physicalvolumes + _lvm_filedir fi } && complete -F _pvcreate pvcreate @@ -181,11 +193,11 @@ _pvmove() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -n|--name) _lvm_logicalvolumes - return 0 + return esac if [[ "$cur" == -* ]]; then @@ -206,7 +218,7 @@ _pvremove() if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else - _lvm_physicalvolumes + _lvm_physicalvolumes_all fi } && complete -F _pvremove pvremove @@ -233,11 +245,11 @@ _vgs() vg_free vg_sysid vg_extent_size vg_extent_count vg_free_count max_lv max_pv pv_count lv_count snap_count vg_seqno' \ -- "$cur" ) ) - return 0 + return ;; --units) _lvm_units - return 0 + return ;; esac @@ -257,7 +269,7 @@ _vgdisplay() case $prev in --units) _lvm_units - return 0 + return ;; esac @@ -277,7 +289,7 @@ _vgchange() case $prev in -a|-A|-x|--available|--autobackup|--resizeable) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac @@ -300,15 +312,15 @@ _vgcreate() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) - return 0 + return ;; -s|--physicalextentsize) _lvm_sizes - return 0 + return ;; esac @@ -318,11 +330,11 @@ _vgcreate() --physicalextentsize --test --verbose --version' -- "$cur" ) ) else local args - _lvm_count_args @(-A|--autobackup|-M|--metadatatype|-s|--physicalextentsize) + _lvm_count_args '@(-A|--autobackup|-M|--metadatatype|-s|--physicalextentsize)' if [[ $args -eq 0 ]]; then _lvm_volumegroups else - _lvm_physicalvolumes + _lvm_physicalvolumes_all fi fi } && @@ -349,7 +361,7 @@ _vgrename() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac @@ -369,7 +381,7 @@ _vgreduce() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac @@ -378,7 +390,7 @@ _vgreduce() else local args - _lvm_count_args @(-A|--autobackup) + _lvm_count_args '@(-A|--autobackup)' if [[ $args -eq 0 ]]; then _lvm_volumegroups else @@ -396,11 +408,11 @@ _vgextend() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -L|--size) _lvm_sizes - return 0 + return ;; esac @@ -408,11 +420,11 @@ _vgextend() COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else local args - _lvm_count_args @(-A|--autobackup|-L|--size) + _lvm_count_args '@(-A|--autobackup|-L|--size)' if [[ $args -eq 0 ]]; then _lvm_volumegroups else - _lvm_physicalvolumes + _lvm_physicalvolumes_all fi fi } && @@ -452,15 +464,15 @@ _vgconvert() case $prev in -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) - return 0 + return ;; --metadatacopies) COMPREPLY=( $( compgen -W '0 1 2' -- "$cur" ) ) - return 0 + return ;; --metadatasize) _lvm_sizes - return 0 + return ;; esac @@ -480,7 +492,7 @@ _vgcfgbackup() case $prev in -f|--file) _filedir - return 0 + return ;; esac @@ -500,15 +512,15 @@ _vgcfgrestore() case $prev in -f|--file) _filedir - return 0 + return ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) - return 0 + return ;; -n|--name) _lvm_volumegroups - return 0 + return ;; esac @@ -528,7 +540,7 @@ _vgmerge() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac @@ -548,11 +560,11 @@ _vgsplit() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) - return 0 + return ;; esac @@ -561,7 +573,7 @@ _vgsplit() --metadatatype --test --verbose --version' -- "$cur" ) ) else local args - _lvm_count_args @(-A|--autobackup|-M|--metadatatype) + _lvm_count_args '@(-A|--autobackup|-M|--metadatatype)' if [[ $args -eq 0 || $args -eq 1 ]]; then _lvm_volumegroups else @@ -605,11 +617,11 @@ _lvs() COMPREPLY=( $( compgen -W 'lv_uuid lv_name lv_attr lv_minor lv_size seg_count origin snap_percent segtype stripes stripesize chunksize seg_start seg_size' -- "$cur" ) ) - return 0 + return ;; --units) _lvm_units - return 0 + return ;; esac @@ -629,7 +641,7 @@ _lvdisplay() case $prev in --units) _lvm_units - return 0 + return ;; esac @@ -649,11 +661,11 @@ _lvchange() case $prev in -a|-A|-C|-M|--available|--autobackup|--contiguous|--persistent) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -p|--permission) COMPREPLY=( $( compgen -W 'r rw' -- "$cur" ) ) - return 0 + return ;; esac @@ -673,19 +685,19 @@ _lvcreate() case $prev in -A|-C|-M|-Z|--autobackup|--contiguous|--persistent|--zero) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -L|--size) _lvm_sizes - return 0 + return ;; -p|--permission) COMPREPLY=( $( compgen -W 'r rw' -- "$cur" ) ) - return 0 + return ;; -n|--name) _lvm_logicalvolumes - return 0 + return ;; esac @@ -693,7 +705,7 @@ _lvcreate() COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else local args - _lvm_count_args @(-A|-C|-M|-Z|--autobackup|--contiguous|--persistent|--zero|-L|--size|-p|--permission|-n|--name) + _lvm_count_args '@(-A|-C|-M|-Z|--autobackup|--contiguous|--persistent|--zero|-L|--size|-p|--permission|-n|--name)' if [[ $args -eq 0 ]]; then _lvm_volumegroups else @@ -711,7 +723,7 @@ _lvremove() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac @@ -731,7 +743,7 @@ _lvrename() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; esac @@ -751,11 +763,11 @@ _lvreduce() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -L|--size) _lvm_sizes - return 0 + return ;; esac @@ -775,11 +787,11 @@ _lvresize() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -L|--size) _lvm_sizes - return 0 + return ;; esac @@ -787,7 +799,7 @@ _lvresize() COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else local args - _lvm_count_args @(-A|--autobackup|-L|--size) + _lvm_count_args '@(-A|--autobackup|-L|--size)' if [[ $args -eq 0 ]]; then _lvm_logicalvolumes else @@ -805,11 +817,11 @@ _lvextend() case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) - return 0 + return ;; -L|--size) _lvm_sizes - return 0 + return ;; esac @@ -817,7 +829,7 @@ _lvextend() COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else local args - _lvm_count_args @(-A|--autobackup|-L|--size) + _lvm_count_args '@(-A|--autobackup|-L|--size)' if [[ $args -eq 0 ]]; then _lvm_logicalvolumes else @@ -841,118 +853,17 @@ _lvm() vgimport vgmerge vgmknodes vgreduce vgremove vgrename vgs vgscan vgsplit version' -- "$cur" ) ) else - case ${words[1]} in - pvchange) - _pvchange - ;; - pvcreate) - _pvcreate - ;; - pvdisplay) - _pvdisplay - ;; - pvmove) - _pvmove - ;; - pvremove) - _pvremove - ;; - pvresize) - _pvresize - ;; - pvs) - _pvs - ;; - pvscan) - _pvscan - ;; - vgcfgbackup) - _vgcfgbackup - ;; - vgcfgrestore) - _vgcfgrestore - ;; - vgchange) - _vgchange - ;; - vgck) - _vgck - ;; - vgconvert) - _vgconvert - ;; - vgcreate) - _vgcreate - ;; - vgdisplay) - _vgdisplay - ;; - vgexport) - _vgexport - ;; - vgextend) - _vgextend - ;; - vgimport) - _vgimport - ;; - vgmerge) - _vgmerge - ;; - vgmknodes) - _vgmknodes - ;; - vgreduce) - _vgreduce - ;; - vgremove) - _vgremove - ;; - vgrename) - _vgrename - ;; - vgs) - _vgs - ;; - vgscan) - _vgscan - ;; - vgsplit) - _vgsplit - ;; - lvchange) - _lvchange - ;; - lvcreate) - _lvcreate - ;; - lvdisplay) - _lvdisplay - ;; - lvextend) - _lvextend - ;; - lvreduce) - _lvreduce - ;; - lvremove) - _lvremove - ;; - lvrename) - _lvrename - ;; - lvresize) - _lvresize - ;; - lvs) - _lvs - ;; - lvscan) - _lvscan + case "${words[1]}" in + pvchange|pvcreate|pvdisplay|pvmove|pvremove|pvresize|pvs|pvscan|\ + vgcfgbackup|vgcfgrestore|vgchange|vgck|vgconvert|vgcreate|\ + vgdisplay|vgexport|vgextend|vgimport|vgmerge|vgmknodes|vgreduce|\ + vgremove|vgrename|vgs|vgscan|vgsplit|lvchange|lvcreate|lvdisplay|\ + lvextend|lvreduce|lvremove|lvrename|lvresize|lvscan) + _${words[1]} ;; esac fi } && complete -F _lvm lvm -# ex: ts=4 sw=4 et filetype=sh +# ex: filetype=sh |