@@ -24,18 +24,56 @@ export CLAUDE_CONFIG_DIR
2424mkdir -p "$CLAUDE_CONFIG_DIR" || true
2525
2626CLAUDE_TOKEN_FILE="$CLAUDE_CONFIG_DIR/.oauth-token"
27- CLAUDE_CODE_OAUTH_TOKEN=""
27+ docker_git_refresh_claude_oauth_token() {
28+ local token=""
29+ if [[ -f "$CLAUDE_TOKEN_FILE" ]]; then
30+ token="$(tr -d '\r\n' < "$CLAUDE_TOKEN_FILE")"
31+ fi
32+ export CLAUDE_CODE_OAUTH_TOKEN="$token"
33+ }
34+
35+ docker_git_refresh_claude_oauth_token
36+
37+ CLAUDE_REAL_BIN="/usr/local/bin/.docker-git-claude-real"
38+ CLAUDE_WRAPPER_BIN="/usr/local/bin/claude"
39+ if command -v claude >/dev/null 2>&1; then
40+ CURRENT_CLAUDE_BIN="$(command -v claude)"
41+ if [[ "$CURRENT_CLAUDE_BIN" != "$CLAUDE_REAL_BIN" && ! -f "$CLAUDE_REAL_BIN" ]]; then
42+ mv "$CURRENT_CLAUDE_BIN" "$CLAUDE_REAL_BIN"
43+ fi
44+ if [[ -f "$CLAUDE_REAL_BIN" ]]; then
45+ cat <<'EOF' > "$CLAUDE_WRAPPER_BIN"
46+ #!/usr/bin/env bash
47+ set -euo pipefail
48+
49+ CLAUDE_REAL_BIN="/usr/local/bin/.docker-git-claude-real"
50+ CLAUDE_CONFIG_DIR="${ "$" } {CLAUDE_CONFIG_DIR:-$HOME/.claude}"
51+ CLAUDE_TOKEN_FILE="$CLAUDE_CONFIG_DIR/.oauth-token"
52+
2853if [[ -f "$CLAUDE_TOKEN_FILE" ]]; then
2954 CLAUDE_CODE_OAUTH_TOKEN="$(tr -d '\r\n' < "$CLAUDE_TOKEN_FILE")"
55+ export CLAUDE_CODE_OAUTH_TOKEN
56+ else
57+ unset CLAUDE_CODE_OAUTH_TOKEN || true
58+ fi
59+
60+ exec "$CLAUDE_REAL_BIN" "$@"
61+ EOF
62+ chmod 0755 "$CLAUDE_WRAPPER_BIN" || true
63+ fi
3064fi
31- export CLAUDE_CODE_OAUTH_TOKEN
3265
3366CLAUDE_PROFILE="/etc/profile.d/claude-config.sh"
3467printf "export CLAUDE_AUTH_LABEL=%q\n" "$CLAUDE_AUTH_LABEL" > "$CLAUDE_PROFILE"
3568printf "export CLAUDE_CONFIG_DIR=%q\n" "$CLAUDE_CONFIG_DIR" >> "$CLAUDE_PROFILE"
36- if [[ -n "$CLAUDE_CODE_OAUTH_TOKEN" ]]; then
37- printf "export CLAUDE_CODE_OAUTH_TOKEN=%q\n" "$CLAUDE_CODE_OAUTH_TOKEN" >> "$CLAUDE_PROFILE"
69+ cat <<'EOF' >> "$CLAUDE_PROFILE"
70+ CLAUDE_TOKEN_FILE="${ "$" } {CLAUDE_CONFIG_DIR:-$HOME/.claude}/.oauth-token"
71+ if [[ -f "$CLAUDE_TOKEN_FILE" ]]; then
72+ export CLAUDE_CODE_OAUTH_TOKEN="$(tr -d '\r\n' < "$CLAUDE_TOKEN_FILE")"
73+ else
74+ unset CLAUDE_CODE_OAUTH_TOKEN || true
3875fi
76+ EOF
3977chmod 0644 "$CLAUDE_PROFILE" || true
4078
4179docker_git_upsert_ssh_env "CLAUDE_AUTH_LABEL" "$CLAUDE_AUTH_LABEL"
0 commit comments