docs: cross-platform install/update/uninstall instructions for codex/gemini/qwen

- Add Linux / macOS / Windows PowerShell / Windows CMD sections to all CLI READMEs
- Update product table versions (claude v2.1.112, codex v0.116.0, qwen v0.14.5)
- Make qwen install/update/uninstall scripts macOS-aware (sedi wrapper, launchctl, /Users scan, ~/.zshrc)
- Make gemini uninstall script macOS-aware (matching install/update)
- Fix CRLF line endings in qwen/gemini uninstall scripts

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
delta-cloud-208e
2026-04-21 09:30:16 +00:00
parent 1320f13f5c
commit f7cf0b79fd
8 changed files with 953 additions and 433 deletions

View File

@@ -12,7 +12,23 @@ NPM_SCOPE="@qwen-code"
NPM_PACKAGE="@qwen-code/qwen-code"
REPO_RAW="https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/qwen"
ENV_FILE="/etc/profile.d/qwen-code.sh"
OS="$(uname -s)"
IS_MACOS=false
[ "$OS" = "Darwin" ] && IS_MACOS=true
if $IS_MACOS; then
ENV_FILE="/etc/qwen-code-env.sh"
else
ENV_FILE="/etc/profile.d/qwen-code.sh"
fi
sedi() {
if $IS_MACOS; then
sed -i '' "$@"
else
sed -i "$@"
fi
}
GREEN="\033[92m"
CYAN="\033[96m"
@@ -133,21 +149,47 @@ fi
API_KEY=$(python3 -c "import json; print(json.load(open('$TEMP_DIR/qwen_config.json'))['api_key'])")
BASE_URL=$(python3 -c "import json; print(json.load(open('$TEMP_DIR/qwen_config.json'))['base_url'])")
ETC_ENV="/etc/environment"
for kv in "QWEN_API_KEY=\"$API_KEY\"" "QWEN_BASE_URL=\"$BASE_URL\""; do
KEY="${kv%%=*}"
if grep -q "^${KEY}=" "$ETC_ENV" 2>/dev/null; then
sed -i "s|^${KEY}=.*|${kv}|" "$ETC_ENV"
else
echo "$kv" >> "$ETC_ENV"
fi
done
if $IS_MACOS; then
launchctl setenv QWEN_API_KEY "$API_KEY" 2>/dev/null || true
launchctl setenv QWEN_BASE_URL "$BASE_URL" 2>/dev/null || true
cat > "$ENV_FILE" << PROF_EOF
cat > "$ENV_FILE" << ENVEOF
export QWEN_API_KEY="$API_KEY"
export QWEN_BASE_URL="$BASE_URL"
ENVEOF
chmod 644 "$ENV_FILE"
REAL_HOME="$HOME"
if [ -n "${SUDO_USER:-}" ] && [ "$SUDO_USER" != "root" ]; then
REAL_HOME=$(eval echo "~$SUDO_USER")
fi
for rc_file in "$REAL_HOME/.zshrc" "$REAL_HOME/.bashrc"; do
if [ -f "$rc_file" ] || [ "$rc_file" = "$REAL_HOME/.zshrc" ]; then
if [ -f "$rc_file" ]; then
sedi '/# Qwen env/d' "$rc_file"
sedi '/qwen-code-env\.sh/d' "$rc_file"
fi
echo "[ -f $ENV_FILE ] && . $ENV_FILE # Qwen env" >> "$rc_file"
fi
done
else
ETC_ENV="/etc/environment"
for kv in "QWEN_API_KEY=\"$API_KEY\"" "QWEN_BASE_URL=\"$BASE_URL\""; do
KEY="${kv%%=*}"
if grep -q "^${KEY}=" "$ETC_ENV" 2>/dev/null; then
sedi "s|^${KEY}=.*|${kv}|" "$ETC_ENV"
else
echo "$kv" >> "$ETC_ENV"
fi
done
mkdir -p /etc/profile.d
cat > "$ENV_FILE" << PROF_EOF
export QWEN_API_KEY="$API_KEY"
export QWEN_BASE_URL="$BASE_URL"
PROF_EOF
chmod 644 "$ENV_FILE"
chmod 644 "$ENV_FILE"
fi
# ---- Create wrapper (auto-loads env) ----