80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#/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
 |