dotfiles/local-bin/.local/bin/stowme

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