From 99ad7701da963c64d9384e93b3d4beafa4352e7c Mon Sep 17 00:00:00 2001 From: Evie Litherland-Smith Date: Wed, 31 May 2023 20:37:10 +0100 Subject: [PATCH] Rewrite Makefile to simplify and use new submodules --- Makefile | 63 +++++++++++++++++++------------------------------------- 1 file changed, 21 insertions(+), 42 deletions(-) diff --git a/Makefile b/Makefile index d8dbe5e6..b8c7a3e0 100644 --- a/Makefile +++ b/Makefile @@ -1,59 +1,38 @@ $(eval HOSTNAME=$(shell hostname)) -NVIM_REPO := https://git.xenia.me.uk/xenia/nvim.git -HYPR_REPO := https://git.xenia.me.uk/xenia/hyprland.git -WAYBAR_REPO := https://git.xenia.me.uk/xenia/waybar.git HOMEMANAGER_CONFIG := $(PWD)/home/$(HOSTNAME)/$(USER).nix CONFIG_DIR := $(if $(XDG_CONFIG_HOME), $(XDG_CONFIG_HOME), $(HOME)/.config) -BIN_DIR := $(HOME)/.local/bin HOMEMANAGER_CONFIG_DIR := $(CONFIG_DIR)/home-manager +SUBMODULES := $(CONFIG_DIR)/nvim $(CONFIG_DIR)/hypr $(CONFIG_DIR)/waybar -.PHONY: default update clean nixos home nvim hypr waybar /etc/nixos/config +.PHONY: default clean nixos home -default: nvim hypr waybar +default: $(SUBMODULES) + command -v nix > /dev/null || exit 1 [ -e /etc/nixos/ ] && make nixos || make home - -update: $(CONFIG_DIR)/nvim $(CONFIG_DIR)/hypr $(CONFIG_DIR)/waybar - git -C $(CONFIG_DIR)/nvim remote set-url origin $(NVIM_REPO) - git -C $(CONFIG_DIR)/hypr remote set-url origin $(HYPR_REPO) - git -C $(CONFIG_DIR)/waybar remote set-url origin $(WAYBAR_REPO) - for repo in $?; do git -C $$repo pull --ff-only; done - [ -e /etc/nixos/ ] && make nixos-update - -clean: - [ -e $(HOMEMANAGER_CONFIG_DIR) ] && rm -rf $(HOMEMANAGER_CONFIG_DIR) - -nixos: /etc/nixos/config - -nixos-update: /etc/nixos/config - sudo nixos-rebuild switch bat cache --build +clean: + -[ -e /etc/nixos ] && sudo rm /etc/nixos/config || rm -rf $(HOMEMANAGER_CONFIG_DIR) + -rm $(SUBMODULES) + +nixos: /etc/nixos/config + sudo nixos-rebuild switch + home: $(HOMEMANAGER_CONFIG_DIR)/home.nix - -nvim: $(CONFIG_DIR)/nvim - -hypr: $(CONFIG_DIR)/hypr - -waybar: $(CONFIG_DIR)/waybar - -/nix: - command -v nix > /dev/null || echo "Install nix package manager before continuing"; exit 1 + home-manager switch /etc/nixos/config: sudo rsync -avz --exclude-from=.rsyncignore --filter=':- .gitignore' --delete-during --delete-excluded ./ $@ -$(HOMEMANAGER_CONFIG_DIR)/home.nix: $(HOMEMANAGER_CONFIG_DIR) /nix - [ -f $(HOMEMANAGER_CONFIG) ] || touch $(HOMEMANAGER_CONFIG) - ln -s $(HOMEMANAGER_CONFIG) $@ +$(HOMEMANAGER_CONFIG): + touch $@ -$(CONFIG_DIR) $(HOMEMANAGER_CONFIG_DIR) $(BIN_DIR): +$(HOMEMANAGER_CONFIG_DIR)/home.nix: $(HOMEMANAGER_CONFIG) $(HOMEMANAGER_CONFIG_DIR) /nix + -ln -s $(HOMEMANAGER_CONFIG) $@ + +$(CONFIG_DIR) $(HOMEMANAGER_CONFIG_DIR): mkdir -p $@ -$(CONFIG_DIR)/nvim: $(CONFIG_DIR) - [ -d $@ ] && touch $@ || git clone $(NVIM_REPO) $@ - -$(CONFIG_DIR)/hypr: $(CONFIG_DIR) - [ -d $@ ] && touch $@ || git clone $(HYPR_REPO) $@ | continue - -$(CONFIG_DIR)/waybar: $(CONFIG_DIR) - [ -d $@ ] && touch $@ || git clone $(WAYBAR_REPO) $@ | continue +$(SUBMODULES): $(CONFIG_DIR)/%: % +$(SUBMODULES): + -ln -s $$(readlink -f $?) $(CONFIG_DIR)/