# Define list of directories you want to stow CONFIG_DIRS := btop doom hypr kitty nvim rclone starship tmux wallpapers waybar wireplumber wofi yazi zsh all: stow_all wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh neofetch # Main target to handle stowing for all directories except rclone stow_all: $(filter-out rclone, $(CONFIG_DIRS)) @echo "Cleaning broken symlinks in ~/.config..." find ~/.config -xtype l -delete -print @echo "Removing symlink ~/.zshrc if it exists..." @if [ -L $$HOME/.zshrc ]; then rm $$HOME/.zshrc; fi @echo "Removing symlink ~/.tmux.conf if it exists..." @if [ -L $$HOME/.tmux.conf ]; then rm $$HOME/.tmux.conf; fi @echo "Stowing all configurations except rclone..." @$(foreach dir,$(filter-out rclone, $(CONFIG_DIRS)), $(MAKE) stow_$(dir);) # Generic stow command for user-scoped directories stow_%: @echo "Stowing $*" stow -v -t $(HOME) $* # Post-installation script for rclone (executed after stowing) post_install_rclone: @echo "Running post-installation script for rclone" @bash $(CURDIR)/scripts/rclone_post_install.sh # Special target for rclone to run post-install after stowing stow_rclone: @echo "Cleaning broken symlinks in ~/.config/rclone/..." find ~/.config/rclone/ -xtype l -delete -print @echo "Removing symlink ~/.local/bin/rclone_mount_check.sh if it exists..." @if [ -L $$HOME/.local/bin/rclone_mount_check.sh ]; then rm $$HOME/.local/bin/rclone_mount_check.sh; fi @echo "Stowing rclone" stow -v -t $(HOME) rclone @$(MAKE) post_install_rclone