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:
20
Makefile
20
Makefile
@@ -1,10 +1,15 @@
|
|||||||
# Define list of directories you want to stow
|
# 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
|
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
|
all: stow_all
|
||||||
wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh
|
wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh
|
||||||
neofetch
|
neofetch
|
||||||
|
|
||||||
|
.PHONY: all stow_all stow_local stow_rclone post_install_rclone clean
|
||||||
|
|
||||||
# Main target to handle stowing for all directories except rclone
|
# Main target to handle stowing for all directories except rclone
|
||||||
stow_all: $(filter-out rclone, $(CONFIG_DIRS))
|
stow_all: $(filter-out rclone, $(CONFIG_DIRS))
|
||||||
@echo "Cleaning broken symlinks in ~/.config..."
|
@echo "Cleaning broken symlinks in ~/.config..."
|
||||||
@@ -21,6 +26,13 @@ stow_%:
|
|||||||
@echo "Stowing $*"
|
@echo "Stowing $*"
|
||||||
stow -v -t $(HOME) $*
|
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-installation script for rclone (executed after stowing)
|
||||||
post_install_rclone:
|
post_install_rclone:
|
||||||
@echo "Running post-installation script for rclone"
|
@echo "Running post-installation script for rclone"
|
||||||
@@ -35,3 +47,11 @@ stow_rclone:
|
|||||||
@echo "Stowing rclone"
|
@echo "Stowing rclone"
|
||||||
stow -v -t $(HOME) rclone
|
stow -v -t $(HOME) rclone
|
||||||
@$(MAKE) post_install_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
|
||||||
|
|||||||
Reference in New Issue
Block a user