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]
|
[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
|
# Systemweit installiert unter /etc/systemd/user/ und global aktiviert
|
||||||
# (siehe stages/10-hyprland.sh) - gilt fuer alle Benutzer, ohne dass etwas
|
# (siehe stages/10-hyprland.sh) - gilt fuer alle Benutzer, ohne dass etwas
|
||||||
# in einzelne Home-Verzeichnisse kopiert werden muss. Bewusst NICHT an
|
# in einzelne Home-Verzeichnisse kopiert werden muss. Bewusst NICHT an
|
||||||
|
|||||||
@@ -2,10 +2,12 @@
|
|||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# /usr/local/lib/first-login-setup/first-login-setup.sh
|
# /usr/local/lib/first-login-setup/first-login-setup.sh
|
||||||
# Ersteinrichtung nach der ersten Anmeldung. Führt der Reihe nach aus:
|
# Ersteinrichtung nach der ersten Anmeldung. Führt der Reihe nach aus:
|
||||||
# 1) setup-dotfiles.sh - Desktop-Konfiguration (LinuxBeginnings / eigenes Repo)
|
# 1) setup-dotfiles.sh - Desktop-Konfiguration (LinuxBeginnings / eigenes Repo)
|
||||||
# 2) setup-shell.sh - Oh-My-Zsh & Plugins
|
# 2) setup-shell.sh - Oh-My-Zsh & Plugins
|
||||||
# 3) setup-junie-cli.sh - JetBrains Junie CLI
|
# 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
|
# Wird automatisch beim Login über den systemweiten systemd --user Service
|
||||||
# 'first-login-setup.service' (/etc/systemd/user/) gestartet - bewusst NICHT
|
# '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" " 2) Oh-My-Zsh & Shell-Plugins"
|
||||||
printf "%b\n" " 3) JetBrains Junie CLI"
|
printf "%b\n" " 3) JetBrains Junie CLI"
|
||||||
printf "%b\n" " 4) AwesomeJunieSkills"
|
printf "%b\n" " 4) AwesomeJunieSkills"
|
||||||
|
printf "%b\n" " 5) Claude Code"
|
||||||
|
printf "%b\n" " 6) Awesome LLM Skills"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf "%b\n" "${CLR_BOLD}${CLR_CYAN}------------------------------------------------------------------------------${CLR_RESET}"
|
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-shell.sh"
|
||||||
bash "$SCRIPT_DIR/setup-junie-cli.sh"
|
bash "$SCRIPT_DIR/setup-junie-cli.sh"
|
||||||
bash "$SCRIPT_DIR/setup-junie-skills.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
|
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_success "Rudimentary Hyprland configuration deployed:"
|
||||||
log_info " - SUPER+ENTER: Kitty Terminal"
|
log_info " - SUPER+ENTER: Kitty Terminal"
|
||||||
log_info " - SUPER+Q: Close Active Window"
|
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 " 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 " '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."
|
log_info " hyprland.conf). Läuft nur beim ersten Login bzw. nach 'Später' erneut."
|
||||||
|
|||||||
Reference in New Issue
Block a user