.POSIX: NAME = server PREFIX = /usr/local SHAREDIR = $(PREFIX)/share DOCDIR = $(SHAREDIR)/doc/$(NAME) all: public src/keys/SSH/root@euandre.org.id_rsa.pub.stripped packages system: ALWAYS \ src/keys/SSH/root@euandre.org.id_rsa.pub.stripped rm -f $@ guix build -r $@ -v3 -f src/guix/$@.scm src/keys/SSH/root@euandre.org.id_rsa.pub.stripped: \ src/keys/SSH/root@euandre.org.id_rsa.pub.txt cut -d' ' -f8- < $(@D)/`basename $(@F) .stripped`.txt > $@ install: all mkdir -p \ '$(DESTDIR)$(DOCDIR)' cp -R public/* '$(DESTDIR)$(DOCDIR)' uninstall: rm -rf \ '$(DESTDIR)$(DOCDIR)' assert-scripts = \ tests/assert-shellcheck.sh \ $(assert-scripts): ALWAYS sh $@ check: all $(assert-scripts) installcheck-docdir: test -e '$(DESTDIR)$(DOCDIR)'/index.html installcheck: installcheck-docdir clean: rm -rf \ public/ src/secrets/*.txt packages system \ public/favicon.svg: mkdir -p $(@D) cp doc/favicon.svg $@ public/style.css: mkdir -p $(@D) echo td -S > $@ html-deps = \ public/favicon.svg \ public/style.css \ public/index.html: README.md $(html-deps) sh doc/md2html.sh -T 'README' < README.md > $@ public/TODOs.html: TODOs.md $(html-deps) td -H | sh doc/md2html.sh -T 'TODOs' > $@ public/ci: sh src/infrastructure/scripts/report.sh -o $@ public: \ public/index.html public/TODOs.html public/ci prod-secrets.txt.gpg = \ src/secrets/nginx.conf.txt.gpg \ src/secrets/borg-passphrase.txt.gpg \ src/secrets/root@euandre.org.id_rsa.txt.gpg prod-secrets.txt = $(prod-secrets.txt.gpg:.gpg=) repo-secrets = \ $(prod-secrets.txt.gpg) \ .SUFFIXES: .gpg .gpg: gpg -d < $< > $@ $(repo-secrets): gpg -aer eu@euandre.org < $(@D)/`basename $@ .gpg` > $@ upload-secrets: $(prod-secrets.txt) ssh euandre.org sudo -u secrets-keeper 'rm -f /opt/secrets/*' rsync \ --rsync-path='sudo -u secrets-keeper rsync' \ --chmod=000 \ -avzP \ $(prod-secrets.txt) euandre.org:/opt/secrets/ ## Generate the ".ssh/authorized_keys" file and upload ## it to rsync.net. upload-keys: cat src/keys/SSH/*.txt | ssh suyin dd of=.ssh/authorized_keys ALWAYS: