
___x_cmd_df___linux___auto(){
    if      ___x_cmd_is_stdout2tty; then        ___x_cmd_df___linux___app
    else                                        ___x_cmd_df___linux___tsv
    fi
}

___x_cmd_df___linux___csv(){   ___x_cmd_df___linux___xsv csv; }
___x_cmd_df___linux___tsv(){   ___x_cmd_df___linux___xsv tsv; }
___x_cmd_df___linux___xsv(){
    ___x_cmd_df___linux___raw | {
        local awkfile="${___X_CMD_ROOT_MOD}/df/lib/awk/mount_linux.awk"
        ! ___x_cmd_df___linux___istoybox || awkfile="${___X_CMD_ROOT_MOD}/df/lib/awk/mount_toybox.awk"

        mount_data="$( ___x_cmd_cmds mount )"                           \
            ___x_cmd_cmds awk -v format="${1:-tsv}"                     \
                -f "${___X_CMD_ROOT_MOD}/df/lib/awk/share.awk"          \
                -f "${awkfile}"
    }
}

# TODO: Unified with mount results ...

___x_cmd_df___linux___raw(){
    # toybox: no print-type
    if ___x_cmd_df___linux___istoybox; then
        if [ -z "$numeric" ]; then
            ___x_cmd_cmds df -ah
        else
            ___x_cmd_cmds df -a
        fi
        return
    fi

    if [ -z "$numeric" ]; then
        ___x_cmd_cmds df -aTh
    else
        ___x_cmd_cmds df -aT
    fi | ___x_cmd_df___raw_sort
}


___x_cmd_df___linux___app(){
    {
        ___x_cmd_df___linux___csv
    } | \
        ___x_cmd csv --app --clear --width "-,-,-,-,-,-,30,-"
}

___x_cmd_df___linux___istoybox(){
    # TODO: detect impl like toybox instead of using termux. What if using proot in termux ? ...
    ___x_cmd_is_termux
}

