# shellcheck shell=dash disable=SC3043,2034

xrc cfgy param

___x_cmd_webtop_cfg(){
    param:void
    [ "$#" -gt 0 ] || set -- --help

    local X_help_cmd=; X_help_cmd='x help -m webtop --cfg' help:arg:parse
    ___x_cmd_webtop_cfg___invoke "$@"
}

___x_cmd_webtop_cur(){
    param:void
    local X_help_cmd=; X_help_cmd='x help -m webtop --cur' help:arg:parse
    ___x_cmd_webtop_cfg___invoke --current "$@"
}

___x_cmd_webtop_init(){
    param:void
    local X_help_cmd=; X_help_cmd='x help -m webtop --init' help:arg:parse
    local cur_os=; local cur_desktop=; local cur_timezone=; local cur_locale=
    local cur_user=; local cur_password=
    if [ -f "$(___x_cmd_webtop_cur --get config)" ]; then
        ___x_cmd_webtop_cur cur_os:=os cur_desktop:=desktop cur_timezone:=timezone cur_locale:=locale cur_user:=user cur_password:=password
    fi

    ___x_cmd_webtop_cfg___invoke --init  \
        os          "Default system environment"        "${cur_os:-ubuntu}"        =     ubuntu  debian alpine  arch  fedora   -- \
        desktop     "Default desktop environment"       "${cur_desktop:-kde}"      =     kde  mate  xfce  i3  icewm openbox    -- \
        timezone    "Default timezone"                  "${cur_timezone:-auto}"    ""                                          -- \
        locale      "Default locale"                    "${cur_locale:-auto}"      =     auto  "en_US.UTF-8"                   -- \
        user        "Default HTTP Basic auth username"  "${cur_user}"              =                                        -- \
        password    "Default HTTP Basic auth password"  "${cur_password}"          '=~*'                                       || return

    webtop:info "Initial configuration successful."
}

___X_CMD_WEBTOP_CFG_VARLIST="os,desktop,timezone,locale,user,password"
___x_cmd_webtop_cfg___invoke(){
    # shellcheck disable=2154
    ___x_cmd_cfgy_obj   \
        --prefix            ___X_CMD_WEBTOP_CFG_DATA                    \
        --default-config    "${___X_CMD_ROOT_CFG}/webtop/X.cfg.yml"     \
        --current-config    "${___X_CMD_WEBTOP_LOCAL_CONFIG}"           \
        --current-profile   "${___X_CMD_WEBTOP_LOCAL_PROFILE}"          \
        --varlist           "$___X_CMD_WEBTOP_CFG_VARLIST"              \
        "$@"
}
