summaryrefslogtreecommitdiff
path: root/EndoForge/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'EndoForge/Makefile')
-rw-r--r--EndoForge/Makefile67
1 files changed, 32 insertions, 35 deletions
diff --git a/EndoForge/Makefile b/EndoForge/Makefile
index de5d480..a63fa31 100644
--- a/EndoForge/Makefile
+++ b/EndoForge/Makefile
@@ -16,15 +16,14 @@ endif
16 16
17HAVE_ROOT != $(SUDO) true && echo y || true 17HAVE_ROOT != $(SUDO) true && echo y || true
18 18
19ROOT_INSTALL = $(SUDO) $(INSTALL)
20USER != echo "$${SUDO_USER:-$$(id -un)}" 19USER != echo "$${SUDO_USER:-$$(id -un)}"
21SSH_CONFIG_DIR = /etc/ssh
22SSHD_CONFIG_DIR = $(SSH_CONFIG_DIR)/sshd_config.d
23SSH_LIB_DIR = /usr/lib/ssh
24USER_SSH_CONFIG_DIR = ~$(USER)/.ssh
25 20
26BROWSER != 2>/dev/null which xdg-open || which w3m || which links || which elinks 21BROWSER != 2>/dev/null which xdg-open || which w3m || which links || which elinks
27 22
23SRC = src
24SOURCE_NAMES = AnonymousAccessCommand sshd_config
25SOURCES = $(addprefix $(SRC), $(SOURCE_NAMES))
26
28.PHONY: install install-user install-user-config install-root shared doc test 27.PHONY: install install-user install-user-config install-root shared doc test
29 28
30doc: README.html 29doc: README.html
@@ -33,46 +32,44 @@ doc: README.html
33shared: install 32shared: install
34 git config core.self-forge true 33 git config core.self-forge true
35 34
36SRC = src
37SOURCE_NAMES = AnonymousAccessCommand anonymous-access.conf AuthorizedKeysCommand sshd_config
38SOURCES = $(addprefix $(SRC), $(SOURCE_NAMES))
39
40KEYTYPE = ed25519
41define EDIT_SSHD
42sed \
43 -e 's?ForceCommand=$$?&$(HOME)/.ssh/AnonymousAccessCommand?' \
44 -e 's?AuthorizedKeysCommandUser=$$?&$(USER)?' \
45 -e 's?HostKey=$$?&$(HOME)/.ssh/id_$(KEYTYPE)?' \
46 -e 's?PidFile=$$?&$(HOME)/.ssh/sshd.pid?'
47endef
48
49install: $(if $(HAVE_ROOT), install-root, install-user) 35install: $(if $(HAVE_ROOT), install-root, install-user)
50 36
51install-user-config: 37install-user-config:
52 $(INSTALL) -d ~/.ssh 38 install -d ~/.ssh
53 $(INSTALL) -t ~/.ssh $(SRC)/AnonymousAccessCommand 39 install -t ~/.ssh $(SRC)/AnonymousAccessCommand
54 40
55 41install-user: install-user-config build/sshd_config ~/.ssh/id_ed25519
56~/.ssh/id_ed25519: 42 $(INSTALL) -m0644 -t ~/.ssh build/sshd_config
57 ssh-keygen -t ed25519 -P '' -f $@
58
59install-user: install-user-config ~/.ssh/id_ed25519
60 $(EDIT_SSHD) < $(SRC)/sshd_config > ~/.ssh/sshd_config.tmp
61 $(MV) ~/.ssh/sshd_config.tmp ~/.ssh/sshd_config
62 $(INSTALL) -m0644 -t ~/.config/systemd/user $(SRC)/sshd.service 43 $(INSTALL) -m0644 -t ~/.config/systemd/user $(SRC)/sshd.service
63 systemctl --user daemon-reload 44 systemctl --user daemon-reload
64 systemctl --user enable sshd 45 systemctl --user enable sshd
65 systemctl --user restart sshd 46 systemctl --user restart sshd
66 47
67install-root: install-user-config 48install-root: install-user-config
68 $(ROOT_INSTALL) -d "$(SSH_CONFIG_DIR)" "$(SSHD_CONFIG_DIR)" "$(SSH_LIB_DIR)" || true 49 $(SUDO) make -C ../OpenSSH_Anonymous_Access install
69 $(ROOT_INSTALL) -m0644 -t "$(SSHD_CONFIG_DIR)" $(SRC)/anonymous-access.conf || true
70 $(ROOT_INSTALL) -t "$(SSH_LIB_DIR)" $(SRC)/AuthorizedKeysCommand || true
71 [ -e /etc/ssh/AuthorizedKeysCommand ] || $(SUDO) ln -s -t /etc/ssh "$(SSH_LIB_DIR)"/AuthorizedKeysCommand
72 $(SUDO) systemctl reload sshd
73
74README.html: README.md
75 pandoc -s --css "$(SRC)"/style.css -t html $< -o $@
76 50
77test: 51test:
78 make -C test 52 make -C test
53
54build/sshd_config: $(SRC)/sshd_config Makefile
55 $(edit_sshd) < "$<" > "$@".tmp
56 mv "$@".tmp "$@"
57
58KEYTYPE = ed25519
59HOST_KEY_FILE = $(HOME)/.ssh/id_$(KEYTYPE)
60SSHD_PID_FILE = $(HOME)/.ssh/sshd.pid
61FORCE_COMMAND = $(HOME)/.ssh/AnonymousAccessCommand
62
63$(HOST_KEY_FILE):
64 ssh-keygen -t "$(KEYTYPE)" -P '' -f "$@"
65
66define edit_sshd
67sed \
68 -e 's?ForceCommand=$$?&$(FORCE_COMMAND)?' \
69 -e 's?AuthorizedKeysCommandUser=$$?&$(USER)?' \
70 -e 's?HostKey=$$?&$(HOST_KEY_FILE)?' \
71 -e 's?PidFile=$$?&$(SSHD_PID_FILE)?'
72endef
73
74README.html: README.md
75 pandoc -s --css "$(SRC)"/style.css -t html $< -o $@