# shellcheck shell=dash

___x_cmd_fsiter___ls_share(){
    local ___x_cmd_fsiter_file_path="${1:-$PWD}"
    local ___x_cmd_fsiter_file_callback="${2:-___x_cmd_fsiter_echo}"

    local ___X_CMD_FSITER___LS_SHARE_OLDPWD="$PWD"
    ___x_cmd_cmds_cd "$___x_cmd_fsiter_file_path" || M="No such directory. [filepath=$___x_cmd_fsiter_file_path]" arg:ret:64

    local code=0
    local ___x_cmd_fsiter_file_i

    if [ "$___X_CMD_FSITER_TYPE" = folder ]; then
        for ___x_cmd_fsiter_file_i in ${___X_CMD_FSITER_GLOB}/; do
            { [ "$___x_cmd_fsiter_file_i" != ./ ] && [ "$___x_cmd_fsiter_file_i" != ../ ]; } || continue
            [ -e "$___x_cmd_fsiter_file_i" ] || continue
            "$___x_cmd_fsiter_file_callback" "${___x_cmd_fsiter_file_i%/}" || { code=$?; break; }
        done
    elif [ "$___X_CMD_FSITER_TYPE" = file ]; then
        for ___x_cmd_fsiter_file_i in ${___X_CMD_FSITER_GLOB}; do
            [ -e "$___x_cmd_fsiter_file_i" ] || continue
            if [ ! -d "$___x_cmd_fsiter_file_i" ]; then
                "$___x_cmd_fsiter_file_callback" "$___x_cmd_fsiter_file_i" || { code=$?; break; }
            fi
        done
    else
        for ___x_cmd_fsiter_file_i in ${___X_CMD_FSITER_GLOB}; do
            { [ "$___x_cmd_fsiter_file_i" != . ] && [ "$___x_cmd_fsiter_file_i" != .. ]; } || continue
            [ -e "$___x_cmd_fsiter_file_i" ] || continue
            "$___x_cmd_fsiter_file_callback" "$___x_cmd_fsiter_file_i" || { code=$?; break; }
        done
    fi

    ___x_cmd_cmds_cd "$___X_CMD_FSITER___LS_SHARE_OLDPWD"
    return $code
}
