# bash completion for lvm have lvm || return _volumegroups() { COMPREPLY=( $(compgen -W "$( vgscan 2>/dev/null | \ sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- "$cur" ) ) } _physicalvolumes() { COMPREPLY=( $(compgen -W "$( pvscan 2>/dev/null | \ sed -n -e 's|^.*PV \(.*\) VG.*$|\1|p' )" -- "$cur" ) ) } _logicalvolumes() { COMPREPLY=( $(compgen -W "$( lvscan 2>/dev/null | \ sed -n -e "s|^.*'\(.*\)'.*$|\1|p" )" -- "$cur" ) ) } _units() { COMPREPLY=( $( compgen -W 'h s b k m g t H K M G T' -- "$cur" ) ) } _sizes() { COMPREPLY=( $( compgen -W 'k K m M g G t T' -- "$cur" ) ) } _args() { args=0 if [[ "${words[0]}" == lvm ]]; then offset=2 else offset=1 fi for (( i=$offset; i < cword; i++ )); do if [[ "${words[i]}" != -* ]]; then args=$(($args + 1)) fi done } _lvmdiskscan() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) fi } && complete -F _lvmdiskscan lvmdiskscan _pvscan() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--debug --exported --novolumegroup \ --help --ignorelockingfailure --partial --short --uuid \ --verbose --version' -- "$cur" ) ) fi } && complete -F _pvscan pvscan _pvs() { local cur prev words cword _init_completion || return case $prev in -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 ;; --units) _units return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi } && complete -F _pvs pvs _pvdisplay() { local cur prev words cword _init_completion || return case $prev in --units) _units return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi } && complete -F _pvdisplay pvdisplay _pvchange() { local cur prev words cword _init_completion || return case $prev in -A|-x|--autobackup|--allocatable) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi } && complete -F _pvchange pvchange _pvcreate() { local cur prev words cword _init_completion || return case $prev in --restorefile) _filedir return 0 ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) return 0 ;; --metadatacopies) COMPREPLY=( $( compgen -W '0 1 2' -- "$cur" ) ) return 0 ;; --metadatasize|--setphysicalvolumesize) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi } && complete -F _pvcreate pvcreate _pvmove() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -n|--name) _logicalvolumes return 0 esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--abort --autobackup \ --background --debug --force --help --interval --test --verbose \ --version --name' -- "$cur" ) ) else _physicalvolumes fi } && complete -F _pvmove pvmove _pvremove() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _physicalvolumes fi } && complete -F _pvremove pvremove _vgscan() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) fi } && complete -F _vgscan vgscan _vgs() { local cur prev words cword _init_completion || return case $prev in -o|-O|--options|--sort) COMPREPLY=( $( compgen -W 'vg_fmt vg_uuid vg_name \ vg_attr vg_size 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 ;; --units) _units return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgs vgs _vgdisplay() { local cur prev words cword _init_completion || return case $prev in --units) _units return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgdisplay vgdisplay _vgchange() { local cur prev words cword _init_completion || return case $prev in -a|-A|-x|--available|--autobackup|--resizeable) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--autobackup --alloc \ --partial --debug --help --ignorelockingfailure \ --test --uuid --verbose --version \ --available --resizeable --logicalvolume \ --addtag --deltag' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgchange vgchange _vgcreate() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) return 0 ;; -s|--physicalextentsize) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--autobackup --addtag --alloc \ --debug --help --maxlogicalvolumes --metadatatype \ --maxphysicalvolumes --physicalextentsize --test \ --verbose --version' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then _volumegroups else _physicalvolumes fi fi } && complete -F _vgcreate vgcreate _vgremove() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgremove vgremove _vgrename() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgrename vgrename _vgreduce() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then _volumegroups else _physicalvolumes fi fi } && complete -F _vgreduce vgreduce _vgextend() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -L|--size) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then _volumegroups else _physicalvolumes fi fi } && complete -F _vgextend vgextend _vgport() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgport vgimport vgexport _vgck() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgck vgck _vgconvert() { local cur prev words cword _init_completion || return case $prev in -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) return 0 ;; --metadatacopies) COMPREPLY=( $( compgen -W '0 1 2' -- "$cur" ) ) return 0 ;; --metadatasize) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgconvert vgconvert _vgcfgbackup() { local cur prev words cword _init_completion || return case $prev in -f|--file) _filedir return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgcfgbackup vgcfgbackup _vgcfgrestore() { local cur prev words cword _init_completion || return case $prev in -f|--file) _filedir return 0 ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) return 0 ;; -n|--name) _volumegroups return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgcfgrestore vgcfgrestore _vgmerge() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgmerge vgmerge _vgsplit() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -M|--metadatatype) COMPREPLY=( $( compgen -W '1 2' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--autobackup --debug \ --help --list --metadatatype --test \ --verbose --version' -- "$cur" ) ) else _args if [[ $args -eq 0 || $args -eq 1 ]]; then _volumegroups else _physicalvolumes fi fi } && complete -F _vgsplit vgsplit _vgmknodes() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _volumegroups fi } && complete -F _vgmknodes vgmknodes _lvscan() { local cur prev words cword _init_completion || return if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) fi } && complete -F _lvscan lvscan _lvs() { local cur prev words cword _init_completion || return case $prev in -o|-O|--options|--sort) 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 ;; --units) _units return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi } && complete -F _lvs lvs _lvdisplay() { local cur prev words cword _init_completion || return case $prev in --units) _units return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi } && complete -F _lvdisplay lvdisplay _lvchange() { local cur prev words cword _init_completion || return case $prev in -a|-A|-C|-M|--available|--autobackup|--continguous|--persistent) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -p|--permission) COMPREPLY=( $( compgen -W 'r rw' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi } && complete -F _lvchange lvchange _lvcreate() { local cur prev words cword _init_completion || return case $prev in -A|-C|-M|-Z|--autobackup|--continguous|--persistent|--zero) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -L|--size) _sizes return 0 ;; -p|--permission) COMPREPLY=( $( compgen -W 'r rw' -- "$cur" ) ) return 0 ;; -n|--name) _logicalvolumes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then _volumegroups else _physicalvolumes fi fi } && complete -F _lvcreate lvcreate _lvremove() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi } && complete -F _lvremove lvremove _lvrename() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi } && complete -F _lvrename lvrename _lvreduce() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -L|--size) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _logicalvolumes fi } && complete -F _lvreduce lvreduce _lvresize() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -L|--size) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then _logicalvolumes else _physicalvolumes fi fi } && complete -F _lvresize lvresize _lvextend() { local cur prev words cword _init_completion || return case $prev in -A|--autobackup) COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) ) return 0 ;; -L|--size) _sizes return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) ) else _args if [ $args -eq 0 ]; then _logicalvolumes else _physicalvolumes fi fi } && complete -F _lvextend lvextend _lvm() { local cur prev words cword _init_completion || return if [ $cword -eq 1 ]; then COMPREPLY=( $( compgen -W 'dumpconfig help lvchange \ lvcreate lvdisplay lvextend lvmchange \ lvmdiskscan lvmsadc lvmsar lvreduce \ lvremove lvrename lvresize lvs lvscan \ pvchange pvcreate pvdata pvdisplay pvmove \ pvremove pvresize pvs pvscan vgcfgbackup \ vgcfgrestore vgchange vgck vgconvert \ vgcreate vgdisplay vgexport vgextend \ 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 ;; esac fi } && complete -F _lvm lvm # 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