Feat: Claude Code & Awesome LLM Skills zur Ersteinrichtung hinzufügen
Ergänzt die bestehende Ersteinrichtung (Dotfiles, Oh-My-Zsh, JetBrains Junie) um zwei weitere Schritte, analog zum bereits vorhandenen Junie-Muster: - setup-claude-cli.sh installiert Claude Code über den offiziellen nativen Installer (curl -fsSL https://claude.ai/install.sh | bash). - setup-claude-skills.sh klont/aktualisiert Awesome LLM Skills (https://github.com/Prat011/awesome-llm-skills) nach ~/.claude/skills/awesome-llm-skills und verlinkt alle Unterordner mit SKILL.md direkt nach ~/.claude/skills, damit Claude Code sie erkennt. first-login-setup.sh ruft beide Schritte zusätzlich auf; Beschreibungen im systemd-Service und in stages/10-hyprland.sh entsprechend erweitert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017WMUd2fGsPCtTCVQkSS5TA
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=Ersteinrichtung: Dotfiles, Oh-My-Zsh, JetBrains Junie CLI & AwesomeJunieSkills
|
||||
Description=Ersteinrichtung: Dotfiles, Oh-My-Zsh, JetBrains Junie, Claude Code & Skills
|
||||
# Systemweit installiert unter /etc/systemd/user/ und global aktiviert
|
||||
# (siehe stages/10-hyprland.sh) - gilt fuer alle Benutzer, ohne dass etwas
|
||||
# in einzelne Home-Verzeichnisse kopiert werden muss. Bewusst NICHT an
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
# 1) setup-dotfiles.sh - Desktop-Konfiguration (LinuxBeginnings / eigenes Repo)
|
||||
# 2) setup-shell.sh - Oh-My-Zsh & Plugins
|
||||
# 3) setup-junie-cli.sh - JetBrains Junie CLI
|
||||
# 4) setup-junie-skills.sh- AwesomeJunieSkills
|
||||
# 4) setup-junie-skills.sh - AwesomeJunieSkills
|
||||
# 5) setup-claude-cli.sh - Claude Code (Anthropic)
|
||||
# 6) setup-claude-skills.sh - Awesome LLM Skills
|
||||
#
|
||||
# Wird automatisch beim Login über den systemweiten systemd --user Service
|
||||
# 'first-login-setup.service' (/etc/systemd/user/) gestartet - bewusst NICHT
|
||||
@@ -96,6 +98,8 @@ printf "%b\n" " 1) Desktop-Konfiguration (Dotfiles)"
|
||||
printf "%b\n" " 2) Oh-My-Zsh & Shell-Plugins"
|
||||
printf "%b\n" " 3) JetBrains Junie CLI"
|
||||
printf "%b\n" " 4) AwesomeJunieSkills"
|
||||
printf "%b\n" " 5) Claude Code"
|
||||
printf "%b\n" " 6) Awesome LLM Skills"
|
||||
printf "\n"
|
||||
printf "%b\n" "${CLR_BOLD}${CLR_CYAN}------------------------------------------------------------------------------${CLR_RESET}"
|
||||
|
||||
@@ -117,6 +121,8 @@ bash "$SCRIPT_DIR/setup-dotfiles.sh"
|
||||
bash "$SCRIPT_DIR/setup-shell.sh"
|
||||
bash "$SCRIPT_DIR/setup-junie-cli.sh"
|
||||
bash "$SCRIPT_DIR/setup-junie-skills.sh"
|
||||
bash "$SCRIPT_DIR/setup-claude-cli.sh"
|
||||
bash "$SCRIPT_DIR/setup-claude-skills.sh"
|
||||
|
||||
mark_as_prompted
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# /usr/local/lib/first-login-setup/setup-claude-cli.sh
|
||||
# Installiert Claude Code (Anthropic) über den offiziellen nativen Installer.
|
||||
#
|
||||
# Kann eigenständig ausgeführt werden, unabhängig von first-login-setup.sh.
|
||||
# ==============================================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=_lib.sh
|
||||
source "$SCRIPT_DIR/_lib.sh"
|
||||
|
||||
install_claude_cli() {
|
||||
print_header " Claude Code Installation "
|
||||
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
if curl -fsSL https://claude.ai/install.sh | bash; then
|
||||
print_success "Claude Code erfolgreich installiert."
|
||||
else
|
||||
print_warn "Installation von Claude Code fehlgeschlagen oder unterbrochen."
|
||||
fi
|
||||
else
|
||||
print_error "'curl' ist nicht installiert. Claude Code konnte nicht geladen werden."
|
||||
fi
|
||||
}
|
||||
|
||||
# Nur ausführen, wenn das Skript direkt gestartet wird (nicht bei source)
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
install_claude_cli
|
||||
fi
|
||||
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
# ==============================================================================
|
||||
# /usr/local/lib/first-login-setup/setup-claude-skills.sh
|
||||
# Klont/aktualisiert Awesome LLM Skills (https://github.com/Prat011/awesome-llm-skills)
|
||||
# in ~/.claude/skills und verknüpft alle gefundenen Skills, damit Claude Code
|
||||
# sie automatisch erkennt.
|
||||
#
|
||||
# Kann eigenständig ausgeführt werden, unabhängig von first-login-setup.sh.
|
||||
# ==============================================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=_lib.sh
|
||||
source "$SCRIPT_DIR/_lib.sh"
|
||||
|
||||
install_claude_skills() {
|
||||
print_header " Awesome LLM Skills Installation "
|
||||
|
||||
local skills_dir="$HOME/.claude/skills"
|
||||
local repo_dir="$skills_dir/awesome-llm-skills"
|
||||
mkdir -p "$skills_dir"
|
||||
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
print_error "'git' ist nicht installiert. Awesome LLM Skills konnte nicht eingerichtet werden."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ -d "$repo_dir/.git" ]]; then
|
||||
print_info "Repository existiert bereits in $repo_dir. Führe 'git pull' aus..."
|
||||
if git -C "$repo_dir" pull --ff-only 2>/dev/null; then
|
||||
print_success "Awesome LLM Skills erfolgreich aktualisiert."
|
||||
else
|
||||
print_warn "'git pull' in $repo_dir fehlgeschlagen."
|
||||
fi
|
||||
else
|
||||
print_info "Klone Awesome LLM Skills nach $repo_dir..."
|
||||
rm -rf "$repo_dir" 2>/dev/null || true
|
||||
if git clone https://github.com/Prat011/awesome-llm-skills.git "$repo_dir"; then
|
||||
print_success "Awesome LLM Skills erfolgreich nach $repo_dir geklont."
|
||||
else
|
||||
print_warn "Klonen von Awesome LLM Skills fehlgeschlagen."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Symlinks für alle Skills im Skill-Hauptordner erstellen
|
||||
if [[ -d "$repo_dir" ]]; then
|
||||
local count=0
|
||||
for skill_path in "$repo_dir"/*; do
|
||||
if [[ -d "$skill_path" && -f "$skill_path/SKILL.md" ]]; then
|
||||
local s_name
|
||||
s_name="$(basename "$skill_path")"
|
||||
ln -sfn "$skill_path" "$skills_dir/$s_name"
|
||||
((count++)) || true
|
||||
fi
|
||||
done
|
||||
print_success "$count Skills verknüpft in '$skills_dir' (kann via 'git pull' in '$repo_dir' aktualisiert werden)."
|
||||
fi
|
||||
}
|
||||
|
||||
# Nur ausführen, wenn das Skript direkt gestartet wird (nicht bei source)
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
install_claude_skills
|
||||
fi
|
||||
@@ -89,7 +89,7 @@ chown -R "$TARGET_USER:$TARGET_USER" "$TARGET_HOME/.config/hypr"
|
||||
log_success "Rudimentary Hyprland configuration deployed:"
|
||||
log_info " - SUPER+ENTER: Kitty Terminal"
|
||||
log_info " - SUPER+Q: Close Active Window"
|
||||
log_info " - Ersteinrichtung (Dotfiles, Oh-My-Zsh, Junie CLI & Skills) startet automatisch beim"
|
||||
log_info " - Ersteinrichtung (Dotfiles, Oh-My-Zsh, JetBrains Junie, Claude Code & Skills) startet automatisch beim"
|
||||
log_info " nächsten Login jedes Benutzers über den systemweiten systemd --user Service"
|
||||
log_info " 'first-login-setup.service' (unabhängig vom gewählten Compositor, NICHT über"
|
||||
log_info " hyprland.conf). Läuft nur beim ersten Login bzw. nach 'Später' erneut."
|
||||
|
||||
Reference in New Issue
Block a user