# shellcheck shell=dash

___X_CMD_NANORC_DATA="$___X_CMD_ROOT_DATA/nanorc/repo"

___X_CMD_NANORC_FP="$HOME/.nanorc"

___x_cmd log init nanorc
xrc:mod:lib     nanorc      setup   ls

___x_cmd_nanorc___main(){
    [ "$#" -gt 0 ] ||   set -- status

    local op="$1";      shift
    case "$op" in
        -h|--help)      ___x_cmd help -m nanorc     "$@" ;      return 0 ;;

        --setup|setup)  ___x_cmd_nanorc_setup       "$@" ;;

        update|ls)      ___x_cmd_nanorc_"${op#--}"  "$@" ;;

        status|cat)     ___x_cmd_nanorc_status      "$@" ;;
        --tdown|tdown|teardown)
                        ___x_cmd_nanorc_tdown       "$@" ;;

        *)              N=nanorc M="Unknown subcmd -> $op" log:ret:64 ;;
    esac
}

___x_cmd_nanorc_isready(){
    [ -d "$___X_CMD_NANORC_DATA/rc" ]
}

___x_cmd_nanorc_status(){
    if [ ! -f "$___X_CMD_NANORC_FP" ]; then
        nanorc:info --tip-setup-nanorc \
            "x nanorc setup" \
            "~/.nanorc is not created."
        return 1
    else
        local x_
        ___x_cmd rat_ "$___X_CMD_NANORC_FP"
        if ___x_cmd grep -q "# boot up x-cmd"; then
            nanorc:info "x-cmd style is enabled nanorc."
        else
            nanorc:info "x-cmd style is not enabled nanorc."
        fi <<A
$x_
A

        {
            printf "- I|nanorc content: |%s\n"
            local line
            while read -r line; do
                printf "  %s\n" "$line"
            done <<A
$x_
A
        } >&2
    fi
}
