80 lines
2.2 KiB
Bash
80 lines
2.2 KiB
Bash
|
#/usr/bin/env bash
|
||
|
|
||
|
_foreign_domain_completions () {
|
||
|
KAZ_ROOT=$(cd "$(dirname ${COMP_WORDS[0]})"/..; pwd)
|
||
|
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
|
||
|
setKazVars
|
||
|
|
||
|
COMPREPLY=()
|
||
|
local cword=${COMP_CWORD} cur=${COMP_WORDS[COMP_CWORD]} card=${#COMP_WORDS[@]} i w skip=0
|
||
|
for ((i=1 ; i<cword; i++)) ; do
|
||
|
w="${COMP_WORDS[i]}"
|
||
|
[[ "${w}" == -* ]] && ((skip++))
|
||
|
done
|
||
|
local arg_pos w i cmd= opt1= opt2=
|
||
|
((arg_pos = cword - skip))
|
||
|
for ((i=1 ; i<card; i++)) ; do
|
||
|
w="${COMP_WORDS[i]}"
|
||
|
if [ -z "${cmd}" ] ; then
|
||
|
[[ "${w}" == -* ]] || cmd="${w}"
|
||
|
continue
|
||
|
fi
|
||
|
if [ -z "${opt1}" ] ; then
|
||
|
[[ "${w}" == -* ]] || opt1="${w}"
|
||
|
continue
|
||
|
fi
|
||
|
if [ -z "${opt2}" ] ; then
|
||
|
[[ "${w}" == -* ]] || opt2="${w}"
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
case "$cur" in
|
||
|
-*)
|
||
|
COMPREPLY=( $(compgen -W "-h -n" -- "${cur}" ) ) ;;
|
||
|
*)
|
||
|
local cmd_available="list add del"
|
||
|
if [ "${arg_pos}" == 1 ]; then
|
||
|
# $1 of foreign-domain.sh .sh
|
||
|
COMPREPLY=($(compgen -W "${cmd_available}" -- "${cur}"))
|
||
|
else
|
||
|
. "${KAZ_CONF_DIR}/dockers.env"
|
||
|
case "${cmd}" in
|
||
|
|
||
|
"list")
|
||
|
;;
|
||
|
"add")
|
||
|
case "${arg_pos}" in
|
||
|
2)
|
||
|
declare -a availableOrga
|
||
|
availableOrga=($(sed -e "s/\(.*\)[ \t]*#.*$/\1/" -e "s/^[ \t]*\(.*\)-orga$/\1/" -e "/^$/d" "${KAZ_CONF_DIR}/container-orga.list"))
|
||
|
COMPREPLY=($(compgen -W "${availableOrga[*]}" -- "${cur}"))
|
||
|
;;
|
||
|
3)
|
||
|
local availableComposes=$(${KAZ_COMP_DIR}/${opt1}-orga/orga-gen.sh -l)
|
||
|
COMPREPLY=($(compgen -W "${availableComposes[*]}" -- "${cur}"))
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
"del")
|
||
|
case "${arg_pos}" in
|
||
|
1)
|
||
|
;;
|
||
|
*)
|
||
|
local availableComposes=$(${KAZ_BIN_DIR}/kazList.sh service validate|sed -e "s/\bcollabora\b//" -e "s/ / /")
|
||
|
declare -a availableDomaine
|
||
|
availableDomaine=($(for compose in ${availableComposes[@]} ; do
|
||
|
sed -e "s/[ \t]*\([^#]*\)#.*/\1/g" -e "/^$/d" -e "s/.*server_name[ \t]\([^ ;]*\).*/\1/" "${KAZ_CONF_PROXY_DIR}/${compose}_kaz_name"
|
||
|
done))
|
||
|
COMPREPLY=($(compgen -W "${availableDomaine[*]}" -- "${cur}"))
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
return 0
|
||
|
}
|
||
|
complete -F _foreign_domain_completions foreign-domain.sh
|