# shellcheck shell=dash
___x_cmd log init onsh

xrc:mod:lib     onsh        __binexec __setup ddgo

___x_cmd_onsh___main(){
    [ "$#" -gt 0 ] || {
        ___x_cmd_onsh___binexec xonsh
        return
    }

    local op="$1"; shift
    case "$op" in
        -h|--help)          ___x_cmd help -m onsh               "$@" ;;
        setup|--setup)      ___x_cmd_onsh___setup               "$@" ;;
        --setup-is-required)
                            ___x_cmd_onsh___setup_is_required   "$@" ;;

        :|ddgo)             ___x_cmd_onsh_ddgo                  "$@" ;;

        --sysco)            ___x_cmd_onsh___sysco               "$@" ;;

        --binexec)          ___x_cmd_onsh___binexec             "$@" ;;
        --|--exec)          ___x_cmd_onsh___binexec xonsh       "$@" ;;
        *)                  ___x_cmd_onsh___binexec xonsh "$op" "$@" ;;
    esac
}

___x_cmd_onsh___sysco(){
    ___X_CMD_CO_EXEC_SHELL=xonsh ___x_cmd co --exec "$@"
}
