diff options
Diffstat (limited to '')
-rwxr-xr-x | Makefile | 196 |
1 files changed, 2 insertions, 194 deletions
@@ -1,202 +1,10 @@ #!gmake -f -SUBSTS_FILE=SUBSTS.local - -# Files that need changes to work locally or that contain sensitive -# information -LOCAL_FILES = \ - .config/beets/config.yaml \ - .config/catgirl/bitlbee \ - .config/catgirl/libera \ - .config/catgirl/oftc \ - .config/catgirl/sdf \ - .config/catgirl/tilde \ - .mutt/accounts.rc \ - .mutt/gpg.rc \ - .mutt/ssl.rc \ - .s-nail.rc \ - .netrc \ - .xinitrc \ - .xmonad/xmonad.hs \ - .zsh/func/prompt_wunjo_setup \ - .zshrc - -# GPG encrypted files. Must be included in GLOBAL_FILES -GPG_FILES = \ - .config/wpa_supplicant.conf \ - .mutt/alias.rc \ - .mutt/alias-cmu.rc \ - .mutt/savehooks.rc - -# Files that are system independent. -# IMPORTANT: directories must have trailing slash -GLOBAL_FILES = \ - .Xresources \ - .Xsession \ - .asoundrc \ - .cache/mailx/ \ - .caffrc \ - .calendar/ \ - .config/ \ - .cmus/ \ - .dput.cf \ - .dzen/ \ - .emacs \ - .emacs.d \ - .gitconfig \ - .gitconfig-debian \ - .inputrc \ - .latexmkrc \ - .lbdbrc \ - .local/ \ - .mailcap \ - .mailcheckrc \ - .mailrc \ - .mutt/ \ - .mutt/alias.rc \ - .mutt/alias-cmu.rc \ - .mutt/savehooks.rc \ - .muttrc \ - .notmuch-config \ - .pulse/ \ - .pythonrc.py \ - .quiltrc-dpkg \ - .reportbugrc \ - .sbuildrc \ - .screenlayout/ \ - .signature \ - .ssh/ \ - .tmux.conf \ - .tmux-mail.conf \ - .urxvt/ \ - .vim/ \ - .vimrc \ - .vm \ - .xinitrc \ - .xkb/ \ - .xmobarrc \ - .xmonad/ \ - .zsh/ \ - .zshenv \ - .zlogout \ - bin/ \ - -get-val = $(if $(C_$1),$(C_$1),$(shell egrep '^$1' $(SUBSTS_FILE) | cut -f2- -d' ')) -get-sed-args = $(foreach var,$($(1)),-e 's|$(var)|$(call get-val,$(var))|g') - -CURRENT_BRANCH = $(shell git branch --no-color | colrm 1 2) - -SHA256 = $(call get-val,SHA256) -GPG_DISABLED = $(call get-val,GPG_DISABLED) -EMACS_DISABLED= $(call get-val,EMACS_DISABLED) -BUILD_FONTS = $(call get-val,BUILD_FONTS) -C_SENDMAIL = $(shell command -v sendmail) - -MAIL_PASS = GMAIL_PASS QUEENSU_PASS RYANAKCA_PASS LOCAL_PASS CMU_PASS SOCS_PASS - -VARS_.config/beets/config.yaml = MBUSER MBPASS -VARS_.config/catgirl/bitlbee = LOCALHOST -VARS_.config/catgirl/libera = LOCALHOST -VARS_.config/catgirl/oftc = LOCALHOST -VARS_.config/catgirl/sdf = LOCALHOST -VARS_.config/catgirl/tilde = LOCALHOST -VARS_.mutt/accounts.rc = $(MAIL_PASS) -VARS_.mutt/gpg.rc = PGPEWRAP_BINARY -VARS_.mutt/ssl.rc = SSL_CERTS -VARS_.s-nail.rc = SENDMAIL SSL_CERTS -VARS_.netrc = $(MAIL_PASS) -VARS_.xinitrc = SCREENLAYOUT PULSE -VARS_.xmonad/xmonad.hs = XMONAD_DZEN_W XMONAD_DZEN_X XMONAD_DZEN_Y -VARS_.zsh/func/prompt_wunjo_setup = ZSH_HOST_COLOUR -VARS_.zshrc = LOCALE SUBSTS_RM SUBSTS_LS KEYCHAIN - -all: clean build - -# This target relies on GLOBAL_FILES being before LOCAL_FILES so that the -# build/LOCAL_FILES targets overwrite what was copied in GLOBAL_FILES. -BUILD = $(patsubst %,build/%,$(GLOBAL_FILES) $(LOCAL_FILES) $(GPG_FILES)) -LOCALS = $(patsubst %,build/%,$(LOCAL_FILES)) - -build: $(BUILD) fonts - -# We must force these with a phony target, otherwise, make will see that they're -# already there (for example, from installing the rest of .mutt or .zsh) and -# will skip them---which means they don't get their substitutions -build/.mutt/accounts.rc: FORCE -build/.xmonad/xmonad.hs: FORCE -build/.zsh/func/prompt_wunjo_setup: FORCE -FORCE: - -.mutt/alias.rc: gpg/.mutt/alias.rc.gpg -.mutt/alias-cmu.rc: gpg/.mutt/alias-cmu.rc.gpg -.mutt/savehooks.rc: gpg/.mutt/savehooks.rc.gpg -.ssh/id_%: gpg/.ssh/id_%.gpg -# $(patsubst gpg/,,$(wildcard gpg/.* gpg/*)) -$(GPG_FILES): - for f in $@ ; do \ - touch $$f; \ - chmod 600 $$f; \ - [ "$(GPG_DISABLED)" = "True" ] || gpg --decrypt gpg/$$f.gpg > $$f; \ - done - -emacsen: - [ "$(EMACS_DISABLED)" = "True" ] || $(MAKE) -C $@ - [ "$(EMACS_DISABLED)" = "True" ] || $(MAKE) -C $@ install - -fonts: - [ "$(BUILD_FONTS)" != "True" ] || $(MAKE) -C .fonts install - -$(LOCALS): .FORCE -build/%: % $(SUBSTS_FILE) - @[ -d $(dir $@) ] || mkdir -p $(dir $@) - ( [ -d $< ] && rsync -a $</* $@/ ) || rsync -a $< $@ - @# sed will only be called if $* is in LOCAL_FILES. - @# Thought of using ifeq/ifneq, but the gmake manual reads: - @# "make evaluates conditionals when it reads a makefile. Consequently, - @# you cannot use automatic variables in the tests of conditionals - @# because they are not defined until recipes are run (see Automatic - @# Variables)." - @[ "$(filter $*,$(LOCAL_FILES))" != "$*" ] || sed $(call get-sed-args,VARS_$*) $< > $@ - -install: build - -diff -u ~/.mutt/alias.rc build/.mutt/alias.rc - rsync -a build/ ~ - chmod 600 ~/.netrc ~/.ssh/id_* - chmod 700 ~/.ssh - -[ "$(BUILD_FONTS)" != "True" ] || fc-cache ~/.fonts - -merge: SUBSTS $(SUBSTS_FILE) - # sdiff has exit status 1 if files are different. Ignore - - sdiff -o SUBSTS.merged $^ - @echo "" - @echo "Please review SUBSTS.merged, then run" - @echo "mv SUBSTS.merged $(SUBSTS_FILE)" udh: udh-master # As a backup for when master changes udh-%: # -L to follow symlinks - rsync -avzL $(@:udh-%=%).debian.org:/var/lib/misc/ssh_known_hosts .ssh/known_hosts.d/debian - -clean: - rm -fr build - $(MAKE) -C emacsen clean - -clobber: clean - rm -f $(GPG_FILES) - $(MAKE) -C emacsen clobber - -diff: build - for file in $(GLOBAL_FILES) $(LOCAL_FILES); do \ - diff -u build/$${file} ../$$file; \ - done - -ugpg/%: - cp -f ../$* $* && \ - gpg -r4E469519ED677734268FBD958F7BF8FC4A11C97A --encrypt $* && \ - mv -f $*.gpg gpg/$*.gpg - -aliases: ugpg/.mutt/alias.rc ugpg/.mutt/alias-cmu.rc + rsync -avzL $(@:udh-%=%).debian.org:/var/lib/misc/ssh_known_hosts private_dot_ssh/known_hosts.d/debian -.FORCE: -.PHONY: build install clean verify merge udh emacsen diff .FORCE aliases +.PHONY: udh |