From 1ed0dde68f1e6ec49d7975ac3e0ce54bfc4778f0 Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Sat, 21 Mar 2026 20:01:50 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20agregar=20script=20install.sh=20para=20?= =?UTF-8?q?symlinks=20de=20configuraci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- install.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..7ad779c --- /dev/null +++ b/install.sh @@ -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."