summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2023-06-01 15:17:20 -0400
committerAndrew Cady <d@jerkface.net>2023-06-01 15:17:20 -0400
commitcbb05ec7def9fbab31c5adf8e3580d4d9c32ca69 (patch)
tree6810420f1df7a84ca73fa0bb9f02180a538e0a9e
parent62a275336f9e12faf2af26f69ac2e0eada08ec2e (diff)
simplify and improve Makefile
clean separation of user units and system units for systemd all user units files now installed into /etc/systemd/user the source files have been moved so that the source directory structure indicates whether the unit is for system or user activation.
-rw-r--r--Makefile58
-rw-r--r--src/user/fossil-httpd.socket (renamed from src/fossil-httpd.socket)0
-rw-r--r--src/user/fossil-httpd@.service (renamed from src/fossil-httpd@.service)0
-rw-r--r--src/user/fossil-init@.service (renamed from src/fossil-init@.service)0
-rw-r--r--src/user/fossil-sync@.path (renamed from src/fossil-sync@.path)0
-rw-r--r--src/user/fossil-sync@.service (renamed from src/fossil-sync@.service)0
-rw-r--r--src/user/fossil-sync@.timer (renamed from src/fossil-sync@.timer)0
7 files changed, 31 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index e152f88..da5a2bf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,29 +1,20 @@
1systemctl_start_units = fossil-user.socket
2systemctl_user_start_units = fossil-httpd.socket
3
1ifneq (0,$(shell id -u)) 4ifneq (0,$(shell id -u))
2fossil_database = db.fossil 5fossil_database = db.fossil
3unitdir = "$${XDG_CONFIG_HOME:-$$HOME/.config}/systemd/user" 6fossil_instance_name != systemd-escape "$$(realpath $(fossil_database))"
4unit_instance_name != systemd-escape "$$(realpath "$(fossil_database)")" 7
5our_name = fossil-sync 8systemctl_user_start_units += $(addprefix fossil-sync@$(fossil_instance_name).,service timer path)
6unit_files_basenames = $(addprefix $(our_name)@.,service path timer)
7unit_files = $(addprefix src/,$(unit_files_basenames) fossil-init@.service $(addprefix fossil-httpd,.socket @.service))
8unit_instances = $(subst @,@"$(unit_instance_name)",$(unit_files_basenames))
9unit_instance = $(our_name)@$(unit_instance_name).service
10fossil_test_instances = '$(shell systemd-escape fossil-test-instance-1)' '$(shell systemd-escape a/b/c/fossil-test-instance-2)'
11 9
12default: install start test 10default: install start test
13install: 11install:
14 sudo make install-deps 12 sudo make install-deps install
15 install -m644 -t $(unitdir) -- $(unit_files)
16 systemctl --user daemon-reload 13 systemctl --user daemon-reload
17 systemctl --user start fossil-httpd.socket
18 sudo make $@
19start stop restart status show: | $(fossil_database) 14start stop restart status show: | $(fossil_database)
20 systemctl --user $@ $(unit_instances) 15 systemctl --user $@ $(systemctl_user_start_units)
21follow: 16follow:
22 journalctl --user $(addprefix -u , $(unit_instances)) -f 17 journalctl --user $(addprefix -u , $(systemctl_user_start_units)) -f
23test:
24 mkdir -p $(HOME)/src/a/b/c
25 systemctl --user start --wait $(addprefix fossil-init@,$(fossil_test_instances))
26 sudo $(MAKE) -$(MAKEFLAGS) $@
27 18
28 19
29 20
@@ -34,6 +25,16 @@ ui: | work/.fslckout
34 25
35 26
36 27
28
29fossil_test_instances = \
30'$(shell systemd-escape fossil-test-instance-1)' \
31'$(shell systemd-escape a/b/c/fossil-test-instance-2)'
32
33test:
34 mkdir -p $(HOME)/src/a/b/c
35 systemctl --user start --wait $(addprefix fossil-init@,$(fossil_test_instances))
36 sudo $(MAKE) -$(MAKEFLAGS) $@
37
37$(fossil_database): 38$(fossil_database):
38 fossil init $@ 39 fossil init $@
39work: 40work:
@@ -41,9 +42,11 @@ work:
41work/.fslckout: | work $(fossil_database) 42work/.fslckout: | work $(fossil_database)
42 cd work && fossil open ../$(fossil_database) 43 cd work && fossil open ../$(fossil_database)
43else 44else
44unitdir = /etc/systemd/system 45user_unit_files = $(wildcard $(addprefix src/user/*.,timer service path socket))
45unit_files = $(addprefix src/fossil-user,@.service .socket) src/fossil-test@.service src/fossil-init@.service 46root_unit_files = $(wildcard $(addprefix src/*.,timer service path socket))
46units = $(filter-out %@.service,$(notdir $(unit_files))) 47systemd_system_dir=/etc/systemd/system
48systemd_user_dir=/etc/systemd/user
49
47executables = src/endofossil 50executables = src/endofossil
48bindir = /usr/local/bin 51bindir = /usr/local/bin
49dependencies = socat fossil ssh openssh-server fakeroot 52dependencies = socat fossil ssh openssh-server fakeroot
@@ -52,20 +55,21 @@ SSH_USERNAME != if [ "$$SUDO_USER" ]; then echo "$$SUDO_USER"; else id -u; fi
52 55
53default: install start follow 56default: install start follow
54install: 57install:
58 install -t "$(bindir)" -- $(executables)
55 install -t /etc/ssh/ -- src/AuthorizedKeysCommand 59 install -t /etc/ssh/ -- src/AuthorizedKeysCommand
56 install -T -- src/AnonymousForceCommand /etc/ssh/user-$(SSH_USERNAME).AnonymousForceCommand 60 install -T -- src/AnonymousForceCommand /etc/ssh/user-"$(SSH_USERNAME)".AnonymousForceCommand
57 install -m644 -t /etc/ssh/sshd_config.d -- src/fossil-user.conf 61 install -m644 -t /etc/ssh/sshd_config.d -- src/fossil-user.conf
58 install -m644 -t $(unitdir) -- $(unit_files) 62 install -m644 -t "$(systemd_system_dir)" -- $(root_unit_files)
59 install -t $(bindir) -- $(executables) 63 install -m644 -t "$(systemd_user_dir)" -- $(user_unit_files)
60 systemctl daemon-reload 64 systemctl daemon-reload
61 systemctl reload ssh 65 systemctl reload ssh
62 systemctl start fossil-user.socket 66 make start
63deps install-deps: 67deps install-deps:
64 apt install --mark-auto --no-upgrade $(dependencies) 68 apt install --mark-auto --no-upgrade $(dependencies)
65test: install 69test: install
66 journalctl -f -u fossil-test@$(SSH_USERNAME) & p=$$!; systemctl start --wait fossil-test@$(SSH_USERNAME); sleep 1; kill $$p 70 journalctl -f -u fossil-test@$(SSH_USERNAME) & p=$$!; systemctl start --wait fossil-test@$(SSH_USERNAME); sleep 1; kill $$p
67start stop restart status show: 71start stop restart status show:
68 systemctl $@ $(units) 72 systemctl $@ $(systemctl_start_units)
69follow: 73follow:
70 journalctl $(addprefix -u , $(units)) -f 74 journalctl $(addprefix -u , $(systemctl_start_units)) -f
71endif 75endif
diff --git a/src/fossil-httpd.socket b/src/user/fossil-httpd.socket
index 3575752..3575752 100644
--- a/src/fossil-httpd.socket
+++ b/src/user/fossil-httpd.socket
diff --git a/src/fossil-httpd@.service b/src/user/fossil-httpd@.service
index eccc17c..eccc17c 100644
--- a/src/fossil-httpd@.service
+++ b/src/user/fossil-httpd@.service
diff --git a/src/fossil-init@.service b/src/user/fossil-init@.service
index 6e300b0..6e300b0 100644
--- a/src/fossil-init@.service
+++ b/src/user/fossil-init@.service
diff --git a/src/fossil-sync@.path b/src/user/fossil-sync@.path
index cb34a02..cb34a02 100644
--- a/src/fossil-sync@.path
+++ b/src/user/fossil-sync@.path
diff --git a/src/fossil-sync@.service b/src/user/fossil-sync@.service
index 05f71cb..05f71cb 100644
--- a/src/fossil-sync@.service
+++ b/src/user/fossil-sync@.service
diff --git a/src/fossil-sync@.timer b/src/user/fossil-sync@.timer
index 4611f40..4611f40 100644
--- a/src/fossil-sync@.timer
+++ b/src/user/fossil-sync@.timer