merge: quick/add-install-script — script de instalación y carpetas skills/agents
This commit is contained in:
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script para enlazar la configuración de Claude desde este repositorio a ~/.claude
|
||||
# Esto permite sincronizar comandos, templates, includes, skills y agents entre máquinas
|
||||
|
||||
set -e
|
||||
|
||||
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
CLAUDE_DIR="$HOME/.claude"
|
||||
|
||||
# Carpetas a enlazar (configuración compartible)
|
||||
FOLDERS=("commands" "includes" "templates" "skills" "agents")
|
||||
|
||||
echo "=== Instalando configuración de Claude ==="
|
||||
echo "Repositorio: $REPO_DIR/.claude"
|
||||
echo "Destino: $CLAUDE_DIR"
|
||||
echo ""
|
||||
|
||||
# Crear ~/.claude si no existe
|
||||
if [ ! -d "$CLAUDE_DIR" ]; then
|
||||
echo "Creando $CLAUDE_DIR..."
|
||||
mkdir -p "$CLAUDE_DIR"
|
||||
fi
|
||||
|
||||
for folder in "${FOLDERS[@]}"; do
|
||||
SOURCE="$REPO_DIR/.claude/$folder"
|
||||
TARGET="$CLAUDE_DIR/$folder"
|
||||
|
||||
# Verificar que la carpeta existe en el repo
|
||||
if [ ! -d "$SOURCE" ]; then
|
||||
echo "WARN: $SOURCE no existe, saltando..."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Si ya es un symlink correcto, saltar
|
||||
if [ -L "$TARGET" ] && [ "$(readlink "$TARGET")" = "$SOURCE" ]; then
|
||||
echo "OK: $folder ya está enlazado correctamente"
|
||||
continue
|
||||
fi
|
||||
|
||||
# Si existe (archivo, carpeta o symlink incorrecto), hacer backup
|
||||
if [ -e "$TARGET" ] || [ -L "$TARGET" ]; then
|
||||
BACKUP="$TARGET.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
echo "Backup: $TARGET -> $BACKUP"
|
||||
mv "$TARGET" "$BACKUP"
|
||||
fi
|
||||
|
||||
# Crear symlink
|
||||
ln -s "$SOURCE" "$TARGET"
|
||||
echo "Enlazado: $folder -> $SOURCE"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "=== Instalación completada ==="
|
||||
echo "Tus comandos y configuración ahora están sincronizados con el repositorio."
|
||||
Reference in New Issue
Block a user