# shellcheck shell=sh disable=SC3043,SC2164,SC1091     # xrc

___x_cmd_ls_bin(){
    ___x_cmd_cmds ls "$@"
}

___x_cmd log init ls
xrc:mod:lib ls       ls_mem ls_cpu ls_ps  app/lsapp

# 1. ls local device
# 2. change to different arguments, like ls :ali/ip, means ali ip ls
___x_cmd_ls___main(){
    [ "$#" -gt 0 ]      ||      set -- --exec   .

    local op="$1";              shift
    case "$op" in
        :*.zip|:*.7z|:*.tar|:*.tar.Z|:*.tar.gz)
                                ___x_cmd zuz ls "${op#:}" ;;
        /cpu|:cpu)              ___x_cmd_ls_cpu             "$@" ;;
        /mem|:mem)              ___x_cmd_ls_mem             "$@" ;;
        /ps|:ps)                ___x_cmd ps ;;
        /path|:path)            ___x_cmd path               "$@" ;;
        --app|:app)             ___x_cmd_ls_app             "$@" ;;
        me:*|*/*:*)             xrc hub;
                                ___x_cmd_hub_file_ls        "$@" ;;

        -h|--help)              ___x_cmd help -m ls              ;;
        --exec)                 ___x_cmd_ls___exec          "$@" ;;
        *)                      ___x_cmd_ls___exec "$op"    "$@" ;;
    esac
}

___x_cmd_ls___exec(){
    if ___x_cmd_is_stdout2tty; then     ___x_cmd_ls_app "$@"
    else                                ___x_cmd_ls_bin "$@"
    fi
}

xrc setmain ___x_cmd_ls

