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