| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #!/usr/bin/env bash
- set -e
- DOTFILES_REPO=~/dotfiles
- DRYRUN=0
- # Parseo de dry-run
- if [[ "$1" == "--dry-run" || "$1" == "-n" ]]; then
- DRYRUN=1
- shift
- fi
- if [ "$#" -ne 2 ]; then
- echo "Uso: $0 [--dry-run] <archivo-existente> <directorio-en-repo>"
- echo "Ejemplo: $0 .zshrc zsh"
- exit 1
- fi
- SRC_ORIGINAL="$1"
- SUBDIR="$2"
- # Obtener path absoluto del archivo origen
- SRC="$(realpath "$SRC_ORIGINAL")"
- # Obtener nombre relativo (ej: .zshrc o config/nvim/init.vim)
- BASENAME=$(basename "$SRC_ORIGINAL")
- DST_DIR="$DOTFILES_REPO/$SUBDIR"
- DST="$DST_DIR/$BASENAME"
- if [ ! -e "$SRC" ]; then
- echo "❌ El archivo $SRC no existe."
- exit 1
- fi
- if [ "$DRYRUN" -eq 1 ]; then
- echo "=== DRY RUN ==="
- echo "📁 Crear directorio si no existe: $DST_DIR"
- echo "📦 Mover: $SRC → $DST"
- echo "🔗 Ejecutar: (cd $DOTFILES_REPO && stow -nv $SUBDIR)"
- else
- echo "📁 Creando directorio: $DST_DIR"
- mkdir -p "$DST_DIR"
- echo "📦 Moviendo archivo: $SRC → $DST"
- mv "$SRC" "$DST"
- echo "🔗 Ejecutando stow"
- cd "$DOTFILES_REPO"
- stow "$SUBDIR"
- echo "✅ Listo: $BASENAME stoweado."
- fi
|