feat: add proper local stow package targets to Makefile

- Add STOW_LOCAL_DIR variable explicitly defining the local package
- Add dedicated stow_local target with cleanup (follows rclone pattern)
- Add .PHONY declaration for all targets
- Add clean target for unstowing all packages
This commit is contained in:
2026-05-20 14:31:04 -04:00
parent 44c9b11c9d
commit bd57909664

View File

@@ -1,10 +1,15 @@
# Define list of directories you want to stow
CONFIG_DIRS := btop doom hypr kitty local nvim rclone starship tmux wallpapers waybar wireplumber wofi yazi zsh
# Local stow package directory (installed to ~/.local)
STOW_LOCAL_DIR := local
all: stow_all
wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh
neofetch
.PHONY: all stow_all stow_local stow_rclone post_install_rclone clean
# Main target to handle stowing for all directories except rclone
stow_all: $(filter-out rclone, $(CONFIG_DIRS))
@echo "Cleaning broken symlinks in ~/.config..."
@@ -21,6 +26,13 @@ stow_%:
@echo "Stowing $*"
stow -v -t $(HOME) $*
# Special target for the local stow package
stow_local:
@echo "Cleaning broken symlinks in ~/.local/share/applications..."
find ~/.local/share/applications -xtype l -delete -print
@echo "Stowing local package"
stow -v -t $(HOME) $(STOW_LOCAL_DIR)
# Post-installation script for rclone (executed after stowing)
post_install_rclone:
@echo "Running post-installation script for rclone"
@@ -35,3 +47,11 @@ stow_rclone:
@echo "Stowing rclone"
stow -v -t $(HOME) rclone
@$(MAKE) post_install_rclone
# Unstow all packages
clean:
@echo "Unstowing all packages..."
@for dir in $(CONFIG_DIRS); do \
echo "Unstowing $$dir..."; \
stow -v -D -t $(HOME) $$dir 2>/dev/null || true; \
done