959 lines
21 KiB
Bash
959 lines
21 KiB
Bash
# bash completion for lvm -*- shell-script -*-
|
|
|
|
_lvm_volumegroups()
|
|
{
|
|
COMPREPLY=( $(compgen -W "$( vgscan 2>/dev/null | \
|
|
sed -n -e 's|.*Found.*"\(.*\)".*$|\1|p' )" -- "$cur" ) )
|
|
}
|
|
|
|
_lvm_physicalvolumes()
|
|
{
|
|
COMPREPLY=( $(compgen -W "$( pvscan 2>/dev/null | \
|
|
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" ) )
|
|
if [[ $cur == /dev/mapper/* ]]; then
|
|
_filedir
|
|
local i
|
|
for i in ${!COMPREPLY[@]}; do
|
|
[[ ${COMPREPLY[i]} == */control ]] && unset COMPREPLY[i]
|
|
done
|
|
fi
|
|
}
|
|
|
|
_lvm_units()
|
|
{
|
|
COMPREPLY=( $( compgen -W 'h s b k m g t H K M G T' -- "$cur" ) )
|
|
}
|
|
|
|
_lvm_sizes()
|
|
{
|
|
COMPREPLY=( $( compgen -W 'k K m M g G t T' -- "$cur" ) )
|
|
}
|
|
|
|
# @param $1 glob matching args known to take an argument
|
|
_lvm_count_args()
|
|
{
|
|
args=0
|
|
local offset=1
|
|
if [[ "${words[0]}" == lvm ]]; then
|
|
offset=2
|
|
fi
|
|
local i prev=${words[$offset-1]}
|
|
for (( i=$offset; i < cword; i++ )); do
|
|
if [[ "${words[i]}" != -* && $prev != $1 ]]; then
|
|
args=$(($args + 1))
|
|
fi
|
|
prev=${words[i]}
|
|
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)
|
|
_lvm_units
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_physicalvolumes
|
|
fi
|
|
} &&
|
|
complete -F _pvs pvs
|
|
|
|
_pvdisplay()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
--units)
|
|
_lvm_units
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_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)
|
|
_lvm_logicalvolumes
|
|
return 0
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '--abort --autobackup --background --debug
|
|
--force --help --interval --test --verbose --version --name' \
|
|
-- "$cur" ) )
|
|
else
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_units
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_volumegroups
|
|
fi
|
|
} &&
|
|
complete -F _vgs vgs
|
|
|
|
_vgdisplay()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
--units)
|
|
_lvm_units
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '--autobackup --addtag --alloc --debug --help
|
|
--maxlogicalvolumes --metadatatype --maxphysicalvolumes
|
|
--physicalextentsize --test --verbose --version' -- "$cur" ) )
|
|
else
|
|
local args
|
|
_lvm_count_args @(-A|--autobackup|-M|--metadatatype|-s|--physicalextentsize)
|
|
if [[ $args -eq 0 ]]; then
|
|
_lvm_volumegroups
|
|
else
|
|
_lvm_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
|
|
_lvm_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
|
|
_lvm_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
|
|
local args
|
|
_lvm_count_args @(-A|--autobackup)
|
|
if [[ $args -eq 0 ]]; then
|
|
_lvm_volumegroups
|
|
else
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
local args
|
|
_lvm_count_args @(-A|--autobackup|-L|--size)
|
|
if [[ $args -eq 0 ]]; then
|
|
_lvm_volumegroups
|
|
else
|
|
_lvm_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
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_volumegroups
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_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
|
|
_lvm_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
|
|
local args
|
|
_lvm_count_args @(-A|--autobackup|-M|--metadatatype)
|
|
if [[ $args -eq 0 || $args -eq 1 ]]; then
|
|
_lvm_volumegroups
|
|
else
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_units
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_logicalvolumes
|
|
fi
|
|
} &&
|
|
complete -F _lvs lvs
|
|
|
|
_lvdisplay()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
--units)
|
|
_lvm_units
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_logicalvolumes
|
|
fi
|
|
} &&
|
|
complete -F _lvdisplay lvdisplay
|
|
|
|
_lvchange()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
-a|-A|-C|-M|--available|--autobackup|--contiguous|--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
|
|
_lvm_logicalvolumes
|
|
fi
|
|
} &&
|
|
complete -F _lvchange lvchange
|
|
|
|
_lvcreate()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
-A|-C|-M|-Z|--autobackup|--contiguous|--persistent|--zero)
|
|
COMPREPLY=( $( compgen -W 'y n' -- "$cur" ) )
|
|
return 0
|
|
;;
|
|
-L|--size)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
-p|--permission)
|
|
COMPREPLY=( $( compgen -W 'r rw' -- "$cur" ) )
|
|
return 0
|
|
;;
|
|
-n|--name)
|
|
_lvm_logicalvolumes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
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)
|
|
if [[ $args -eq 0 ]]; then
|
|
_lvm_volumegroups
|
|
else
|
|
_lvm_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
|
|
_lvm_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
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
local args
|
|
_lvm_count_args @(-A|--autobackup|-L|--size)
|
|
if [[ $args -eq 0 ]]; then
|
|
_lvm_logicalvolumes
|
|
else
|
|
_lvm_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)
|
|
_lvm_sizes
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cur" == -* ]]; then
|
|
COMPREPLY=( $( compgen -W '$( _parse_usage "$1" --help )' -- "$cur" ) )
|
|
else
|
|
local args
|
|
_lvm_count_args @(-A|--autobackup|-L|--size)
|
|
if [[ $args -eq 0 ]]; then
|
|
_lvm_logicalvolumes
|
|
else
|
|
_lvm_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
|
|
|
|
# ex: ts=4 sw=4 et filetype=sh
|