30 lines
850 B
Bash
30 lines
850 B
Bash
# bkctld(8) completion
|
|
#
|
|
# Copyright (c) 2017 Victor Laborie <vlaborie@evolix.fr>
|
|
#
|
|
# shellcheck shell=bash
|
|
|
|
function _bkctld()
|
|
{
|
|
local cur prev commands jails keys
|
|
|
|
cur=${COMP_WORDS[COMP_CWORD]};
|
|
prev=${COMP_WORDS[COMP_CWORD-1]};
|
|
commands=$(find /usr/lib/bkctld/ -name "bkctld-*" -exec basename {} \; | sed 's/^bkctld-//')
|
|
|
|
if [ $COMP_CWORD -eq 1 ]; then
|
|
COMPREPLY=($(compgen -W '${commands}' -- ${cur}))
|
|
elif [ $COMP_CWORD -eq 2 ]; then
|
|
[ -f /etc/default/bkctld ] && source /etc/default/bkctld
|
|
[ -z "${JAILDIR}" ] && JAILDIR='/backup/jails'
|
|
jails=$(ls "${JAILDIR}")
|
|
COMPREPLY=($(compgen -W "${jails}" -- ${cur}))
|
|
elif [ $COMP_CWORD -eq 3 ]; then
|
|
keys=$(ls *.pub)
|
|
COMPREPLY=($(compgen -W "${keys}" -- ${cur}))
|
|
fi
|
|
|
|
return 0
|
|
} &&
|
|
complete -F _bkctld bkctld
|