6d0ccdfe20
Incluye script de statusline con info de modelo, contexto, tokens, git, costos y rate limits. Actualiza install.sh para instalar configs. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
109 lines
3.3 KiB
Bash
Executable File
109 lines
3.3 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=("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
|
|
|
|
# === Archivos de configuración ===
|
|
echo ""
|
|
echo "=== Instalando archivos de configuración ==="
|
|
|
|
# 1. Status Line Script
|
|
STATUSLINE_SOURCE="$REPO_DIR/.claude/statusline.sh"
|
|
STATUSLINE_TARGET="$CLAUDE_DIR/statusline.sh"
|
|
|
|
if [ -f "$STATUSLINE_SOURCE" ]; then
|
|
if [ -f "$STATUSLINE_TARGET" ]; then
|
|
BACKUP="$STATUSLINE_TARGET.backup.$(date +%Y%m%d_%H%M%S)"
|
|
echo "Backup: statusline.sh -> $BACKUP"
|
|
mv "$STATUSLINE_TARGET" "$BACKUP"
|
|
fi
|
|
|
|
cp "$STATUSLINE_SOURCE" "$STATUSLINE_TARGET"
|
|
chmod +x "$STATUSLINE_TARGET"
|
|
echo "Copiado: statusline.sh (ejecutable)"
|
|
else
|
|
echo "WARN: statusline.sh no encontrado en el repo"
|
|
fi
|
|
|
|
# 2. Settings.json (enlace simbólico)
|
|
SETTINGS_SOURCE="$REPO_DIR/.claude/settings.json"
|
|
SETTINGS_TARGET="$CLAUDE_DIR/settings.json"
|
|
|
|
if [ -f "$SETTINGS_SOURCE" ]; then
|
|
# Si ya es un symlink correcto, saltar
|
|
if [ -L "$SETTINGS_TARGET" ] && [ "$(readlink "$SETTINGS_TARGET")" = "$SETTINGS_SOURCE" ]; then
|
|
echo "OK: settings.json ya está enlazado correctamente"
|
|
else
|
|
# Si existe (archivo o symlink incorrecto), hacer backup
|
|
if [ -e "$SETTINGS_TARGET" ] || [ -L "$SETTINGS_TARGET" ]; then
|
|
BACKUP="$SETTINGS_TARGET.backup.$(date +%Y%m%d_%H%M%S)"
|
|
echo "Backup: settings.json -> $BACKUP"
|
|
mv "$SETTINGS_TARGET" "$BACKUP"
|
|
fi
|
|
|
|
# Crear symlink
|
|
ln -s "$SETTINGS_SOURCE" "$SETTINGS_TARGET"
|
|
echo "Enlazado: settings.json -> $SETTINGS_SOURCE"
|
|
fi
|
|
else
|
|
echo "WARN: settings.json no encontrado en el repo"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== Instalación completada ==="
|
|
echo "Tus comandos y configuración ahora están sincronizados con el repositorio."
|
|
echo ""
|
|
echo "Configuración instalada:"
|
|
echo " • Skills y Agents enlazados simbólicamente"
|
|
echo " • Status Line configurada con vibecoding setup"
|
|
echo " • Settings.json enlazado (compartido entre repos)"
|
|
echo ""
|
|
echo "Reinicia Claude Code para ver la nueva status line."
|