xmake-io / xrepo

🗂️ A cross-platform C/C++ package manager based on Xmake
https://xrepo.xmake.io
Apache License 2.0
354 stars 18 forks source link

xrepo:60: no such file or directory: /Users/zz/.local/bin/xmake #45

Closed zchrissirhcz closed 3 months ago

zchrissirhcz commented 3 months ago

Xmake 版本

v2.9.2+20240523

操作系统版本和架构

Apple M1

描述问题

第一次安装 xmake 的方式忘记了, 应该不是 brew 安装的。

执行了 xmake update 前, xrepo 命令印象中能使用。 执行 xmake update 后, 输入 xrepo 提示

➜  ~ xrepo
xrepo:60: no such file or directory: /Users/zz/.local/bin/xmake

检查了 xmake 和 xrepo 各自是什么:

➜  ~ which xmake
/opt/homebrew/bin/xmake
➜  ~ which xrepo
xrepo () {
    if [ $# -ge 2 ] && [ "$1" = "env" ]
    then
        local cmd="${2-x}"
        case "$cmd" in
            (shell) if test "${XMAKE_PROMPT_BACKUP}"
                then
                    PS1="${XMAKE_PROMPT_BACKUP}"
                    source "${XMAKE_ENV_BACKUP}" || return 1
                    unset XMAKE_PROMPT_BACKUP
                    unset XMAKE_ENV_BACKUP
                fi
                "$XMAKE_EXE" lua private.xrepo.action.env.info config || return 1
                local prompt="$("$XMAKE_EXE" lua --quiet private.xrepo.action.env.info prompt)"  || return 1
                if [ -z "${prompt+x}" ]
                then
                    return 1
                fi
                local activateCommand="$("$XMAKE_EXE" lua private.xrepo.action.env.info script.bash)"  || return 1
                export XMAKE_ENV_BACKUP="$("$XMAKE_EXE" lua private.xrepo.action.env.info envfile)"
                export XMAKE_PROMPT_BACKUP="${PS1}"
                "$XMAKE_EXE" lua private.xrepo.action.env.info backup.bash > "$XMAKE_ENV_BACKUP"
                eval "$activateCommand"
                PS1="${prompt} $PS1"  ;;
            (quit) if test "${XMAKE_PROMPT_BACKUP}"
                then
                    PS1="${XMAKE_PROMPT_BACKUP}"
                    source "${XMAKE_ENV_BACKUP}" || return 1
                    unset XMAKE_PROMPT_BACKUP
                    unset XMAKE_ENV_BACKUP
                fi ;;
            (-b | --bind) if [ "$4" = "shell" ]
                then
                    local bnd="${3-x}"
                    if test "${XMAKE_PROMPT_BACKUP}"
                    then
                        PS1="${XMAKE_PROMPT_BACKUP}"
                        source "${XMAKE_ENV_BACKUP}" || return 1
                        unset XMAKE_PROMPT_BACKUP
                        unset XMAKE_ENV_BACKUP
                    fi
                    "$XMAKE_EXE" lua private.xrepo.action.env.info config $bnd || return 1
                    local prompt="$("$XMAKE_EXE" lua --quiet private.xrepo.action.env.info prompt $bnd)"  || return 1
                    if [ -z "${prompt+x}" ]
                    then
                        return 1
                    fi
                    local activateCommand="$("$XMAKE_EXE" lua --quiet private.xrepo.action.env.info script.bash $bnd)"  || return 1
                    export XMAKE_ENV_BACKUP="$("$XMAKE_EXE" lua private.xrepo.action.env.info envfile $bnd)"
                    export XMAKE_PROMPT_BACKUP="${PS1}"
                    "$XMAKE_EXE" lua --quiet private.xrepo.action.env.info backup.bash $bnd > "$XMAKE_ENV_BACKUP"
                    eval "$activateCommand"
                    PS1="${prompt} $PS1"
                else
                    "$XMAKE_EXE" lua private.xrepo "$@"
                fi ;;
            (*) "$XMAKE_EXE" lua private.xrepo "$@" ;;
        esac
    else
        "$XMAKE_EXE" lua private.xrepo "$@"
    fi
}

期待的结果

希望 xrepo 命令不要报错,要提示 help 的内容。

工程配置

没有 xmake.lua

附加信息和错误日志

➜  ~ xmake -vD
checking for xrepo ... /opt/homebrew/bin/xrepo
checking for ping ... /sbin/ping
pinging the host(gitee.com) ... 40 ms
pinging the host(gitlab.com) ... 199 ms
pinging the host(github.com) ... 293 ms
note: xmake.lua not found, try generating it (pass -y or --confirm=y/n/d to skip confirm)?
please input: n (y/n)
zchrissirhcz commented 3 months ago

临时解决了: 删除 ~/.xmake 目录, 重开 shell, 恢复正常。