# shellcheck shell=dash disable=SC2142,SC2154

alias cfgy:arg:config-profile:local='
    local config="${___X_CMD_CFGY_OBJ_CURRENT_CONFIG:-"$___X_CMD_CFGY_OBJ_DEFAULT_CONFIG"}"
    local profile="${___X_CMD_CFGY_OBJ_CURRENT_PROFILE:-X}"
    local X_arg_help=
    local N=cfgy
'

alias arg:config-profile:parse='
case "$1" in
    --config)
        [ "$#" -gt 1 ] || M="Provide config path" N=${N:-x} log:ret:64
        config="$2";        shift 2; continue ;;
    @*)
        config="${1#@}";    shift 1; continue ;;
    --profile)
        [ "$#" -gt 1 ] || M="Provide profile path" N=${N:-x} log:ret:64
        profile="$2";       shift 2; continue ;;
    :*)
        profile="${1#:}";   shift 1; continue ;;
    --help|-h)
        X_arg_help=1
        shift 1; break
        ;;
    *)  break
esac
'

alias cfgy:arg:config-profile:parse=arg:config-profile:parse

alias cfgy:arg:config-profile:all='
    cfgy:arg:config-profile:local
    while [ "$#" -gt 0 ]; do
        cfgy:arg:config-profile:parse
    done;

    [ -z "$X_arg_help" ] || {
        ___x_cmd help --show
        return 0
    }
'

alias cfgy:check:varname='
    ___x_cmd_cfgy_obj___hasvar "$X_cfgy_varname" || {
        N=cfgy M="Unknown varname ==> $X_cfgy_varname" log:ret:64
        return 1
    }
'
