53 lines
1.1 KiB
Bash
Executable file
53 lines
1.1 KiB
Bash
Executable file
#!/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
|