From c7a2b37cc95237b11418e208c523e8445bf43d9b Mon Sep 17 00:00:00 2001 From: Christian Baer Date: Sun, 24 Jan 2021 16:34:21 +0100 Subject: [PATCH 1/2] First commit --- Makefile | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dddb9fc --- /dev/null +++ b/Makefile @@ -0,0 +1,163 @@ +SHELL = /bin/sh +HOMEDIR = ${HOME} + + +.PHONY: help all + + +.DEFAULT_GOAL := help + +# This will output the help for each task +# thanks to https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html +help: ## This help + @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) + +all: git-fetch git-secrets-reveal deploy ## Run all tasks + +deploy: deploy-alacritty deploy-bitbar deploy-duti deploy-espanso deploy-htop deploy-readline deploy-skhd deploy-yabai deploy-tmux deploy-vim deploy-vscodium deploy-youtubedl deploy-zsh deploy-brewfile deploy-ssh deploy-hushlogin ## Deploy all config files + +gen-vscodium-plugin-list: ## Update the list of VSCodium plugins + @echo "\033[32m>>>\033[0m Updating the list of VSCodium plugins at .config/VSCodium/UserUser/extensions.list" + @code --list-extensions > .config/VSCodium/UserUser/extensions.list + +git-secrets-hide: ## Hide secrets with git-secret + @echo "\033[32m>>>\033[0m Encrypting secrets." + @git secret hide + @echo "\033[32m>>>\033[0m Creating commit." + @git add -A && git commit -m "Updated secrets." + +git-secrets-reveal: ## Reveal secrets with git-secret + @echo "\033[32m>>>\033[0m Decrypting secrets." + @git secret reveal + @echo "\033[32m>>>\033[0m Remove encrypted files." + @git secret clean + +git-fetch: ## Fetch changes from origin + @echo "\033[32m>>>\033[0m Fetching changes from origin." + @git fetch origin main + +git-push: ## Push changes to origin + @echo "\033[32m>>>\033[0m Pushing changes to origin." + @git push origin main + +git-update-submodules: ## Update all submodules + @echo "\033[32m>>>\033[0m Updating git submodules." + @git submodule update --init --recursive && \ + git submodule foreach git pull --recurse-submodules origin + +brew-bundle: ## Install applications with brew bundle + @echo "\033[32m>>>\033[0m\033[0m Installing applications from .config/Brewfile" + @brew bundle --file .config/Brewfile || true + +brew-bundle-cleanup: ## Removew all appplications that are not listed in Brewfile + @echo "\033[32m>>>\033[0m Removing applications that are not listed in .config/Brewfile" + @brew bundle cleanup --zap --force --file .config/Brewfile + +deploy-alacritty: ## Deploy alacritty config + @echo "\033[32m>>>\033[0m Deploy alacritty config to ${HOMEDIR}/.config/alacritty" + @mkdir -p ~/.config/alacritty + @cp .config/alacritty/* ${HOMEDIR}/.config/alacritty + +deploy-bitbar: ## Deploy BitBar config + @echo "\033[32m>>>\033[0m Deploy BitBar config to ${HOMEDIR}/.config/BitBar" + @mkdir -p ${HOMEDIR}/.config/BitBar + @cp .config/BitBar/* ${HOMEDIR}/.config/BitBar + @echo "\033[32m>>>\033[0m Setting BitBar plugin directory to ${HOMEDIR}/.config/BitBar/Enabled" + @defaults write com.matryer.BitBar pluginsDirectory "${HOMEDIR}/.config/BitBar/Enabled" + @echo "\033[32m>>>\033[0m Enabeling BitBar plugins" + @mkdir -p ${HOMEDIR}/.config/BitBar/Enabled + @ln -sf ${HOMEDIR}/.config/BitBar/*.sh ${HOMEDIR}/.config/BitBar/Enabled + +deploy-duti: ## Deploy duti config + @echo "\033[32m>>>\033[0m Deploy duti config to ${HOMEDIR}/.config/duti" + @mkdir -p ${HOMEDIR}/.config/duti + @cp .config/duti/* ${HOMEDIR}/.config/duti + @echo "\033[32m>>>\033[0m Processing duti config from ${HOMEDIR}/.config/duti" + @duti ${HOMEDIR}/.config/duti + +deploy-espanso: ## Deploy espanso config + @echo "\033[32m>>>\033[0m Deploy espanso config to ${HOMEDIR}/.config/espanso" + @mkdir -p ${HOMEDIR}/.config/espanso/user + @cp .config/espanso/*.yml ${HOMEDIR}/.config/espanso + @cp .config/espanso/user/*.yml ${HOMEDIR}/.config/espanso/user + @echo "\033[32m>>>\033[0m Enabeling espanso daemon" + @espanso register + +deploy-htop: ## Deploy htop config + @echo "\033[32m>>>\033[0m Deploy htop config to ${HOMEDIR}/.config/htop" + @mkdir -p ${HOMEDIR}/.config/htop + @cp .config/htop/htoprc ${HOMEDIR}/.config/htop + +deploy-readline: ## Deploy readliine config + @echo "\033[32m>>>\033[0m Deploy readline config to ${HOMEDIR}/.config/readline" + @mkdir -p ${HOMEDIR}/.config/readline + @cp .config/readline/inputrc ${HOMEDIR}/.config/readline + +deploy-skhd: ## Deploy skhd config + @echo "\033[32m>>>\033[0m Deploy skhd config to ${HOMEDIR}/.config/skhd" + @mkdir -p ${HOMEDIR}/.config/skhd + @cp .config/skhd/skhdrc ${HOMEDIR}/.config/skhd + @echo "\033[32m>>>\033[0m Enabeling skhd daemon" + @brew services start skhd + +deploy-tmux: ## Deploy tmux config + @echo "\033[32m>>>\033[0m Deploy tmux config to ${HOMEDIR}/.config/tmux" + @mkdir -p ${HOMEDIR}/.config/tmux + @cp .config/tmux/*.conf ${HOMEDIR}/.config/tmux + +deploy-vim: ## Deploy vim config + @echo "\033[32m>>>\033[0m Deploy vim config to ${HOMEDIR}/.config/vim" + @mkdir -p ${HOMEDIR}/.config/vim + @mkdir -p ${HOMEDIR}/.config/vim/autoload + @mkdir -p ${HOMEDIR}/.config/vim/backup + @mkdir -p ${HOMEDIR}/.config/vim/colors + @mkdir -p ${HOMEDIR}/.config/vim/plugged + @mkdir -p ${HOMEDIR}/.config/vim/swap + @mkdir -p ${HOMEDIR}/.config/vim/undo + @cp .config/vim/vimrc ${HOMEDIR}/.config/vim + +deploy-vscodium: ## Deploy VSCodium config + @echo "\033[32m>>>\033[0m Deploy VSCodium config to ${HOMEDIR}/.config/VSCodium/User" + @mkdir -p ${HOMEDIR}/.config/VSCodium/User + @cp .config/VSCodium/User/*.json ${HOMEDIR}/.config/VSCodium/User + + @echo "\033[32m>>>\033[0m Install VSCodium extensions from ${HOMEDIR}/.config/VSCodium/User/extensions.list" + @cat .config/VSCodium/User/extensions.list | xargs -L 1 code --install-extension + +deploy-yabai: ## Deploy yabai config + @echo "\033[32m>>>\033[0m Deploy yabai config to ${HOMEDIR}/.config/yabai" + @mkdir -p ${HOMEDIR}/.config/yabai + @cp .config/yabai/yabairc ${HOMEDIR}/.config/yabai + @echo "\033[32m>>>\033[0m Enabeling yabai daemon" + @brew services start yabai + +deploy-youtubedl: ## Deploy youtube-dl config + @echo "\033[32m>>>\033[0m Deploy youtube-dl config to ${HOMEDIR}/.config/youtube-dl" + @mkdir -p ${HOMEDIR}/.config/youtube-dl + @cp .config/youtube-dl/config ${HOMEDIR}/.config/youtube-dl + +deploy-zsh: ## Deploy zsh config + @echo "\033[32m>>>\033[0m Deploy zsh config to ${HOMEDIR}/.config/zsh" + @mkdir -p ${HOMEDIR}/.config/zsh + @mkdir -p ${HOMEDIR}/.config/zsh/functions + @mkdir -p ${HOMEDIR}/.config/zsh/lib + @cp .zshenv ${HOMEDIR}/ + @cp .config/zsh/.z* ${HOMEDIR}/.config/zsh + @cp .config/zsh/functions/* ${HOMEDIR}/.config/zsh/functions + @cp .config/zsh/lib/*.zsh ${HOMEDIR}/.config/zsh/lib + +deploy-brewfile: ## Deploy Brewfile + @echo "\033[32m>>>\033[0m Deploy Brewfile to ${HOMEDIR}/.config/" + @mkdir -p ${HOMEDIR}/.config + @cp .config/Brewfile ${HOMEDIR}/.config/ + +deploy-ssh: ## Deploy SSH config + @echo "\033[32m>>>\033[0m Deploy SSH config to ${HOMEDIR}/.ssh" + @mkdir -p ${HOMEDIR}/.ssh/master + @mkdir -p ${HOMEDIR}/.ssh/conf.d + @cp .ssh/config ${HOMEDIR}/.ssh/ + @cp .ssh/conf.d/*.conf ${HOMEDIR}/.ssh/conf.d + +deploy-hushlogin: ## Deploy .hushlogin + @echo "\033[32m>>>\033[0m Deploy .hushlogin to ${HOMEDIR}" + @cp .hushlogin ${HOMEDIR}/ \ No newline at end of file From 00bf2e8104da2496eba4489950bb3bf1a4993e92 Mon Sep 17 00:00:00 2001 From: Christian Baer Date: Sun, 24 Jan 2021 16:49:12 +0100 Subject: [PATCH 2/2] Makefile: Final state for now --- Makefile | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index dddb9fc..7bc0a14 100644 --- a/Makefile +++ b/Makefile @@ -12,9 +12,15 @@ HOMEDIR = ${HOME} help: ## This help @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) -all: git-fetch git-secrets-reveal deploy ## Run all tasks +all: git-fetch git-secrets-reveal deploy-macos ## Update repo, decrypt secrets and run deploy-macos -deploy: deploy-alacritty deploy-bitbar deploy-duti deploy-espanso deploy-htop deploy-readline deploy-skhd deploy-yabai deploy-tmux deploy-vim deploy-vscodium deploy-youtubedl deploy-zsh deploy-brewfile deploy-ssh deploy-hushlogin ## Deploy all config files +install: git-fetch deploy-base ## Update repor and run deploy-base + +deploy-base: deploy-htop deploy-readline deploy-tmux deploy-vim deploy-zsh deploy-ssh deploy-hushlogin ## Only deploy basic conf files for shell usage + +deploy-workstation: deploy-base deploy-alacritty deploy-espanso deploy-vscodium deploy-youtubedl ## Deploy workstation specific config files (inherits deploy-shell) + +deploy-macos: deploy-workstation deploy-bitbar deploy-duti deploy-skhd deploy-yabai deploy-brewfile ## Deploy macOS specific config files (inherits deploy-workstation) gen-vscodium-plugin-list: ## Update the list of VSCodium plugins @echo "\033[32m>>>\033[0m Updating the list of VSCodium plugins at .config/VSCodium/UserUser/extensions.list" @@ -79,7 +85,7 @@ deploy-espanso: ## Deploy espanso config @echo "\033[32m>>>\033[0m Deploy espanso config to ${HOMEDIR}/.config/espanso" @mkdir -p ${HOMEDIR}/.config/espanso/user @cp .config/espanso/*.yml ${HOMEDIR}/.config/espanso - @cp .config/espanso/user/*.yml ${HOMEDIR}/.config/espanso/user + -@cp .config/espanso/user/*.yml ${HOMEDIR}/.config/espanso/user @echo "\033[32m>>>\033[0m Enabeling espanso daemon" @espanso register @@ -156,7 +162,7 @@ deploy-ssh: ## Deploy SSH config @mkdir -p ${HOMEDIR}/.ssh/master @mkdir -p ${HOMEDIR}/.ssh/conf.d @cp .ssh/config ${HOMEDIR}/.ssh/ - @cp .ssh/conf.d/*.conf ${HOMEDIR}/.ssh/conf.d + -@cp .ssh/conf.d/*.conf ${HOMEDIR}/.ssh/conf.d deploy-hushlogin: ## Deploy .hushlogin @echo "\033[32m>>>\033[0m Deploy .hushlogin to ${HOMEDIR}"