jq, ruff und secret-tool werden bei Bedarf via apt/pipx installiert. Fehlender Gitea-Token wird interaktiv abgefragt und im Keyring gespeichert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
86 lines
2.2 KiB
Bash
Executable File
86 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
||
set -euo pipefail
|
||
|
||
REPO="/mnt/projekte/claude-workflow"
|
||
|
||
echo "=== Claude-Workflow Bootstrap ==="
|
||
|
||
# Skills (als Verzeichnis-Symlinks: ~/.claude/skills/<name> → repo/skills/<name>/)
|
||
mkdir -p ~/.claude/skills
|
||
for d in "$REPO/skills/"/*/; do
|
||
name=$(basename "$d")
|
||
ln -sf "$d" ~/.claude/skills/"$name"
|
||
done
|
||
echo "✓ Skills verlinkt"
|
||
|
||
# Agents
|
||
mkdir -p ~/.claude/agents
|
||
for f in "$REPO/agents/"*.md; do
|
||
ln -sf "$f" ~/.claude/agents/
|
||
done
|
||
echo "✓ Agents verlinkt"
|
||
|
||
# Dotfiles
|
||
ln -sf "$REPO/dotfiles/CLAUDE.md" ~/.claude/CLAUDE.md
|
||
ln -sf "$REPO/dotfiles/settings.json" ~/.claude/settings.json
|
||
ln -sf "$REPO/dotfiles/statusline-command.sh" ~/.claude/statusline-command.sh
|
||
echo "✓ Dotfiles verlinkt"
|
||
|
||
# Hooks ausführbar machen
|
||
chmod +x "$REPO/hooks/"*.sh
|
||
echo "✓ Hooks ausführbar"
|
||
|
||
echo ""
|
||
echo "=== Voraussetzungen prüfen ==="
|
||
|
||
# --- jq ---
|
||
if command -v jq &>/dev/null; then
|
||
echo "✓ jq $(jq --version)"
|
||
else
|
||
echo " jq fehlt – installiere via apt..."
|
||
sudo apt-get install -y jq
|
||
echo "✓ jq installiert"
|
||
fi
|
||
|
||
# --- ruff ---
|
||
if command -v ruff &>/dev/null; then
|
||
echo "✓ ruff $(ruff --version)"
|
||
else
|
||
echo " ruff fehlt – installiere via pipx..."
|
||
if ! command -v pipx &>/dev/null; then
|
||
sudo apt-get install -y pipx
|
||
pipx ensurepath
|
||
fi
|
||
pipx install ruff
|
||
echo "✓ ruff installiert"
|
||
fi
|
||
|
||
# --- secret-tool + Gitea-Token ---
|
||
if ! command -v secret-tool &>/dev/null; then
|
||
echo " secret-tool fehlt – installiere libsecret-tools..."
|
||
sudo apt-get install -y libsecret-tools
|
||
echo "✓ secret-tool installiert"
|
||
else
|
||
echo "✓ secret-tool vorhanden"
|
||
fi
|
||
|
||
echo " Gitea-Token prüfen..."
|
||
if secret-tool lookup user claude-code token gitea &>/dev/null; then
|
||
echo "✓ Gitea-Token vorhanden"
|
||
else
|
||
echo ""
|
||
echo " Gitea-Token für claude-code nicht gefunden."
|
||
read -r -p " Gitea-Token eingeben (https://gitea.troeger-net.org): " GITEA_TOKEN
|
||
if [[ -n "${GITEA_TOKEN// /}" ]]; then
|
||
echo -n "$GITEA_TOKEN" | secret-tool store \
|
||
--label="Gitea claude-code token" \
|
||
user claude-code token gitea
|
||
echo "✓ Gitea-Token gespeichert"
|
||
else
|
||
echo "⚠ Kein Token eingegeben – übersprungen"
|
||
fi
|
||
fi
|
||
|
||
echo ""
|
||
echo "✓ Bootstrap abgeschlossen"
|