setup-claude-profiles: claude-account Funktion fuer Re-Login

claude-account priv|work fuehrt logout, Browser-Oeffnung und
login in einem Schritt durch. Dokumentation in CLAUDE.md ergaenzt.
This commit is contained in:
rene 2026-03-26 17:17:29 +01:00
parent 58233e7b4f
commit ecf731d17c
2 changed files with 105 additions and 0 deletions

View file

@ -115,6 +115,12 @@ die Setup-Skripte nicht heruntergeladen werden.
- gitcheck Alias funktioniert in interaktiver Shell (nicht via `zsh -l -c`, das ist normal) - gitcheck Alias funktioniert in interaktiver Shell (nicht via `zsh -l -c`, das ist normal)
- Powerlevel10k Instant Prompt: `POWERLEVEL9K_INSTANT_PROMPT=quiet` muss VOR dem source stehen, nicht in .p10k.zsh (wird sonst ueberschrieben) - Powerlevel10k Instant Prompt: `POWERLEVEL9K_INSTANT_PROMPT=quiet` muss VOR dem source stehen, nicht in .p10k.zsh (wird sonst ueberschrieben)
### Claude Code Multi-Profile
- Zwei Profile: `claude-priv` (mail@motocamp.de) und `claude-work` (rene@rm202.de)
- Config-Dirs: `~/.claude-priv` und `~/.claude-work`
- `claude-account priv|work` fuer Re-Login (logout, Browser, login)
- Setup: `setup-claude-profiles.sh` richtet Verzeichnisse und Shell-Aliases ein
### asciiquarium ### asciiquarium
- benoetigt Perl-Modul Term::Animation (nicht in apt verfuegbar) - benoetigt Perl-Modul Term::Animation (nicht in apt verfuegbar)
- Abhaengigkeiten: libcurses-perl (apt) + Term::Animation (CPAN) - Abhaengigkeiten: libcurses-perl (apt) + Term::Animation (CPAN)

99
setup-claude-profiles.sh Executable file
View file

@ -0,0 +1,99 @@
#!/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 ""