# shellcheck shell=dash

___x_cmd_lua___luac(){
    local op="$1";      shift
    case "$op" in
        --help|-h)      ___x_cmd help -m lua c ;                    return 1 ;;
        *)              ___x_cmd_lua___luac_exec                 "$@" ;;
    esac
}

___x_cmd_lua___luac_exec(){
    # ___X_CMD_LUA_EXPORT="$(export)" ___x_cmd_lua___exec_ "$@"
    # TODO: inject some functions inside

    ___x_cmd_lua___luac_exec_ "$@"
}

___x_cmd_lua___luac_exec_(){
    if ___x_cmd_hascmd luac; then
        ___x_cmd_cmds luac "$@"
        return
    fi

    # In the future, we will use official lua pkgbuild
    local platform="${___X_CMD_LUA_DIST_PREFERED:-pkg}"

    case "${platform}" in
        pkg)        ___x_cmd env try lua        || return $?
                    ___x_cmd_cmds luac "$@"     ;;
        # cosmo)      ___x_cmd cosmo      luac "$@"    ;;
        # wasmer)     ___x_cmd wasmer     luac "$@"    ;;
        # wasmtime)   ___x_cmd wasmtime   luac "$@"    ;;
    esac
}