diff --git a/scripts/test-gitea-token.sh b/scripts/test-gitea-token.sh index 2f5ce3d..e5483cb 100755 --- a/scripts/test-gitea-token.sh +++ b/scripts/test-gitea-token.sh @@ -38,7 +38,9 @@ mkrepo(){ # $1=repo 目錄 $2=dirty|clean $3=有沒有 .env(env|noenv) resolve_py(){ # $1=cwd $2=CLAUDE_PROJECT_DIR(空=不設) $3=setenv|noenv local envargs="-u GITEA_TOKEN_CLAUDE_CODE -u GITEA_TOKEN" [ "$3" = "setenv" ] && envargs="GITEA_TOKEN_CLAUDE_CODE=$TOK" - local pd=""; [ -n "$2" ] && pd="CLAUDE_PROJECT_DIR=$2" + # 空=真的不設:CC session 會繼承一個 CLAUDE_PROJECT_DIR,不 -u 掉就會解到真的 token(09-19 在本機實撞)。 + # env 的 -u 一定要排在 NAME=VALUE 前面,所以「要設」時放在最後、「不設」時併進 -u 那串。 + local pd=""; if [ -n "$2" ]; then pd="CLAUDE_PROJECT_DIR=$2"; else envargs="-u CLAUDE_PROJECT_DIR $envargs"; fi GOT=$( cd "$1" && env $envargs $pd python3 -c " import sys; sys.path.insert(0,'$REPO/hooks/lib') from gitea_token import gitea_token @@ -47,7 +49,9 @@ print(gitea_token() or '')" 2>/dev/null ) resolve_sh(){ # 同上,走 shell 版 local envargs="-u GITEA_TOKEN_CLAUDE_CODE -u GITEA_TOKEN" [ "$3" = "setenv" ] && envargs="GITEA_TOKEN_CLAUDE_CODE=$TOK" - local pd=""; [ -n "$2" ] && pd="CLAUDE_PROJECT_DIR=$2" + # 空=真的不設:CC session 會繼承一個 CLAUDE_PROJECT_DIR,不 -u 掉就會解到真的 token(09-19 在本機實撞)。 + # env 的 -u 一定要排在 NAME=VALUE 前面,所以「要設」時放在最後、「不設」時併進 -u 那串。 + local pd=""; if [ -n "$2" ]; then pd="CLAUDE_PROJECT_DIR=$2"; else envargs="-u CLAUDE_PROJECT_DIR $envargs"; fi GOT=$( cd "$1" && env $envargs $pd sh -c ". $REPO/$SHLIB; gitea_token" 2>/dev/null ) }