claude-account priv|work fuehrt logout, Browser-Oeffnung und login in einem Schritt durch. Dokumentation in CLAUDE.md ergaenzt.
99 lines
4 KiB
Bash
Executable file
99 lines
4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# setup-claude-profiles.sh
|
|
# Richtet zwei getrennte Claude-Code-Profile ein (priv/work)
|
|
# Verwendung: bash setup-claude-profiles.sh
|
|
|
|
set -euo pipefail
|
|
|
|
# ── Farben ──────────────────────────────────────────────────────────────
|
|
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; NC='\033[0m'
|
|
ok() { echo -e "${GREEN}[OK] $*${NC}"; }
|
|
warn() { echo -e "${YELLOW}[!!] $*${NC}"; }
|
|
fail() { echo -e "${RED}[FAIL] $*${NC}"; }
|
|
|
|
MARKER="claude-profiles-start"
|
|
ZSHRC="$HOME/.zshrc"
|
|
|
|
echo ""
|
|
echo "============================================"
|
|
echo " Claude-Code Multi-Profile Setup"
|
|
echo "============================================"
|
|
|
|
# ── Claude Code installiert? ────────────────────────────────────────────
|
|
if ! command -v claude &>/dev/null; then
|
|
warn "claude nicht gefunden - bitte zuerst installieren (npm install -g @anthropic-ai/claude-code)"
|
|
fi
|
|
|
|
# ── Bestehende ~/.claude migrieren ──────────────────────────────────────
|
|
echo -e "\n=== Migration ==="
|
|
if [[ -d "$HOME/.claude" && ! -d "$HOME/.claude-priv" ]]; then
|
|
mv "$HOME/.claude" "$HOME/.claude-priv"
|
|
ok "~/.claude nach ~/.claude-priv verschoben"
|
|
elif [[ -d "$HOME/.claude" && -d "$HOME/.claude-priv" ]]; then
|
|
warn "~/.claude und ~/.claude-priv existieren beide - manuelle Migration noetig"
|
|
else
|
|
ok "Nichts zu migrieren"
|
|
fi
|
|
|
|
# ── Config-Verzeichnisse anlegen ────────────────────────────────────────
|
|
echo -e "\n=== Verzeichnisse ==="
|
|
mkdir -p "$HOME/.claude-priv" "$HOME/.claude-work"
|
|
ok "~/.claude-priv angelegt (mail@motocamp.de)"
|
|
ok "~/.claude-work angelegt (rene@rm202.de)"
|
|
|
|
# ── Aliases in .zshrc ──────────────────────────────────────────────────
|
|
echo -e "\n=== Shell-Aliases ==="
|
|
if [[ ! -f "$ZSHRC" ]]; then
|
|
fail "$ZSHRC existiert nicht"
|
|
exit 1
|
|
fi
|
|
|
|
if grep -qF "$MARKER" "$ZSHRC"; then
|
|
warn "$ZSHRC - Aliases bereits vorhanden"
|
|
else
|
|
{
|
|
echo ""
|
|
echo "# claude-profiles-start"
|
|
echo "alias claude-priv='CLAUDE_CONFIG_DIR=~/.claude-priv command claude' # mail@motocamp.de"
|
|
echo "alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work command claude' # rene@rm202.de"
|
|
echo 'alias claude='"'"'echo "Bitte claude-priv oder claude-work verwenden."'"'"''
|
|
cat << 'FUNC'
|
|
claude-account() {
|
|
local profile="$1"
|
|
if [[ "$profile" != "priv" && "$profile" != "work" ]]; then
|
|
echo "Verwendung: claude-account priv|work"
|
|
return 1
|
|
fi
|
|
local config_dir="$HOME/.claude-${profile}"
|
|
echo "==> Claude Code abmelden (${profile})..."
|
|
CLAUDE_CONFIG_DIR="$config_dir" command claude /logout
|
|
echo ""
|
|
echo "==> Browser oeffnen - bitte ab- und neu anmelden..."
|
|
open "https://console.anthropic.com"
|
|
read -r "?Wenn im Browser fertig, Enter druecken..."
|
|
echo ""
|
|
echo "==> Claude Code anmelden (${profile})..."
|
|
CLAUDE_CONFIG_DIR="$config_dir" command claude /login
|
|
}
|
|
FUNC
|
|
echo "# claude-profiles-end"
|
|
} >> "$ZSHRC"
|
|
ok "$ZSHRC - Aliases eingefuegt"
|
|
fi
|
|
|
|
# ── Zusammenfassung ─────────────────────────────────────────────────────
|
|
echo ""
|
|
echo "============================================"
|
|
echo " Fertig! Profil-Zuordnung:"
|
|
echo " claude-priv -> mail@motocamp.de"
|
|
echo " claude-work -> rene@rm202.de"
|
|
echo "============================================"
|
|
echo ""
|
|
echo "Naechste Schritte:"
|
|
echo " 1. source ~/.zshrc"
|
|
echo " 2. claude-priv (mit mail@motocamp.de einloggen)"
|
|
echo " 3. claude-work (mit rene@rm202.de einloggen)"
|
|
echo ""
|
|
echo "Account wechseln: claude-account priv oder claude-account work"
|
|
echo ""
|