# shellcheck shell=dash

if [ zsh = "$___X_CMD_SHELL" ]; then
    xrc:mod:lib fsiter ls_share_zsh exist_zsh
else
    xrc:mod:lib fsiter ls_share     exist
fi

___x_cmd_fsiter_echo(){
    printf "%s\n" "$1"
}

___x_cmd_fsiter___ls_main(){
    local ___X_CMD_FSITER_SHOWHIDDEN=
    local ___X_CMD_FSITER_TYPE=

    while [ $# -gt 0 ]; do
        case "$1" in
            --file)         ___X_CMD_FSITER_TYPE="file"     ;;
            --folder)       ___X_CMD_FSITER_TYPE="folder"   ;;
            --hidden-only)  ___X_CMD_FSITER_SHOWHIDDEN=2    ;;
            --hidden)       ___X_CMD_FSITER_SHOWHIDDEN=1    ;;
            *)              break ;;
        esac
        shift
    done

    case "$___X_CMD_FSITER_SHOWHIDDEN" in
        1)
            ___X_CMD_FSITER_GLOB="*"    ___x_cmd_fsiter___ls_share "$@" || return $?
            ___X_CMD_FSITER_GLOB=".*"   ___x_cmd_fsiter___ls_share "$@"
            ;;
        2)
            ___X_CMD_FSITER_GLOB=".*"   ___x_cmd_fsiter___ls_share "$@"
            ;;
        *)
            ___X_CMD_FSITER_GLOB="*"    ___x_cmd_fsiter___ls_share "$@"
            ;;
    esac
}
