Files
repo_Claude/install.sh
T
egutierrez 1ed0dde68f feat: agregar script install.sh para symlinks de configuración
Script que enlaza las carpetas de configuración compartible (commands, includes, templates, skills, agents) desde el repositorio a ~/.claude. Permite sincronizar la configuración de Claude entre múltiples máquinas manteniendo los datos locales (credenciales, historial, caché) separados. El script hace backup automático de carpetas existentes y es idempotente.
2026-03-21 20:01:50 +01:00

56 lines
1.6 KiB
Bash
Executable File

#!/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."