mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-03-12 04:36:22 -07:00
104 lines
3.0 KiB
Bash
104 lines
3.0 KiB
Bash
# bash completion for cryptsetup -*- shell-script -*-
|
|
|
|
_cryptsetup_name()
|
|
{
|
|
COMPREPLY=($(compgen -X control -W '$(command ls /dev/mapper)' -- "$cur"))
|
|
}
|
|
|
|
_cryptsetup_device()
|
|
{
|
|
cur=${cur:=/dev/}
|
|
_filedir
|
|
}
|
|
|
|
_cryptsetup()
|
|
{
|
|
local cur prev words cword split
|
|
_init_completion -s || return
|
|
|
|
case $prev in
|
|
--help | --version | --cipher | --hash | --*-size | --key-slot | --size | --offset | \
|
|
--skip | --iter-time | --timeout | --tries | -!(-*)[chslSbopitT])
|
|
return
|
|
;;
|
|
--key-file | --master-key-file | --header-backup-file | -!(-*)d)
|
|
_filedir
|
|
return
|
|
;;
|
|
--type | -!(-*)M)
|
|
COMPREPLY=($(compgen -W "luks plain loopaes tcrypt" -- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
local arg
|
|
_get_first_arg
|
|
if [[ -z $arg ]]; then
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur"))
|
|
[[ ${COMPREPLY-} == *= ]] && compopt -o nospace
|
|
else
|
|
COMPREPLY=($(compgen -W 'open close resize status benchmark
|
|
repair erase luksFormat luksAddKey luksRemoveKey luksChangeKey
|
|
luksKillSlot luksUUID isLuks luksDump tcryptDump luksSuspend
|
|
luksResume luksHeaderBackup luksHeaderRestore' -- "$cur"))
|
|
fi
|
|
else
|
|
local args
|
|
_count_args "" "-!(-*)[chslSbopitTdM]"
|
|
case $arg in
|
|
open | create | luksOpen | loopaesOpen | tcryptOpen)
|
|
case $args in
|
|
2)
|
|
_cryptsetup_device
|
|
;;
|
|
3)
|
|
_cryptsetup_name
|
|
;;
|
|
esac
|
|
;;
|
|
close | remove | luksClose | loopaesClose | tcryptClose | status | resize | \
|
|
luksSuspend | luksResume)
|
|
case $args in
|
|
2)
|
|
_cryptsetup_name
|
|
;;
|
|
esac
|
|
;;
|
|
luksFormat | luksAddKey | luksRemoveKey | luksChangeKey)
|
|
case $args in
|
|
2)
|
|
_cryptsetup_device
|
|
;;
|
|
3)
|
|
_filedir
|
|
;;
|
|
esac
|
|
;;
|
|
luksKillSlot | luksDelKey | luksUUID | isLuks | luksDump)
|
|
case $args in
|
|
2)
|
|
_cryptsetup_device
|
|
;;
|
|
esac
|
|
;;
|
|
luksHeaderBackup | luksHeaderRestore)
|
|
case $args in
|
|
2)
|
|
_cryptsetup_device
|
|
;;
|
|
3)
|
|
COMPREPLY=('--header-backup-file')
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
} &&
|
|
complete -F _cryptsetup cryptsetup
|
|
|
|
# ex: filetype=sh
|