mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-01-28 01:47:19 +01:00
95 lines
2.6 KiB
Text
95 lines
2.6 KiB
Text
# Bash completion for IOPSYS "./iop" utility
|
|
# Source this file into the curent shell or copy it into
|
|
# /usr/share/bash-completion/completions/ and start a new shell
|
|
# for automatic availability.
|
|
|
|
_iop_get_profiles()
|
|
{
|
|
find feeds/targets/iopsys-*/ -name '*.diff' \
|
|
|awk -F'/' '{print$NF}' \
|
|
|awk -F. '{print$1}'
|
|
}
|
|
|
|
_iop_get_models()
|
|
{
|
|
find feeds/targets/iopsys-*/ -mindepth 1 -maxdepth 1 -type d \
|
|
|awk -F'/' '{print$NF}' \
|
|
|egrep '^(cg|dg|eg|vg|vox)[0-9]'
|
|
}
|
|
|
|
_iop_get_model_customers()
|
|
{
|
|
local model=$1
|
|
find customerconfigs/$prev -mindepth 1 -maxdepth 1 -type d \
|
|
|awk -F'/' '{print$NF}'
|
|
}
|
|
|
|
_iop()
|
|
{
|
|
local cur prev iopcmds
|
|
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
|
|
iopcmds="bootstrap cfe_upgrade cfe_upgrade_latest extract_core \
|
|
feeds_update genconfig \
|
|
generate_tarballs install_key \
|
|
scp_changes setup_host ssh_install_key status \
|
|
update_feed_branches ssh_upgrade smoketest"
|
|
|
|
if [ $COMP_CWORD -eq 1 ] ; then
|
|
|
|
# Complete the primary iop command
|
|
COMPREPLY=($(compgen -W "${iopcmds}" -- ${cur}))
|
|
return 0
|
|
|
|
else
|
|
|
|
# Complete the arguments to "iopcmds"
|
|
local cmd="${COMP_WORDS[1]}"
|
|
case "$cmd" in
|
|
|
|
extract_core)
|
|
if [ "$prev" == "-e" ] ; then
|
|
_filedir -d
|
|
else
|
|
COMPREPLY=( $(compgen -W "-e -h" -- ${cur}) )
|
|
fi
|
|
return 0
|
|
;;
|
|
|
|
genconfig)
|
|
if [ "$prev" == "-p" ] ; then
|
|
local profiles=$(_iop_get_profiles)
|
|
COMPREPLY=( $(compgen -W "juci $profiles" -- ${cur}) )
|
|
elif [[ $cur == -* ]] ; then
|
|
COMPREPLY=( $(compgen -W "-c -h -p -s -t -u -v" -- ${cur}) )
|
|
else
|
|
local models=$(_iop_get_models)
|
|
if echo $models |grep -qw -- $prev ; then
|
|
local customers=$(_iop_get_model_customers $prev)
|
|
COMPREPLY=( $(compgen -W "$customers" -- ${cur}) )
|
|
else
|
|
COMPREPLY=( $(compgen -W "$models" -- ${cur}) )
|
|
fi
|
|
fi
|
|
return 0
|
|
;;
|
|
ssh_upgrade)
|
|
if [ "$prev" == "-f" ] ; then
|
|
_filedir
|
|
else
|
|
COMPREPLY=( $(compgen -W "-f -t -i -n -x -b" -- ${cur}) )
|
|
fi
|
|
;;
|
|
*)
|
|
# No arguments or arguments not supported yet
|
|
;;
|
|
esac
|
|
fi
|
|
}
|
|
|
|
complete -F _iop ./iop
|
|
complete -F _iop iop
|
|
|