summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2023-05-30 21:19:54 -0400
committerAndrew Cady <d@jerkface.net>2023-05-30 21:19:54 -0400
commitb9c3866f23d0f21398a4ebb25874546be40225f5 (patch)
tree36064107f4528de88226c1ec03abc80cdc410119
parenta3bfb0fa4c468bdc19a421ae5d5e26fba2d0b597 (diff)
auto init fossil test instances
-rw-r--r--Makefile5
-rw-r--r--src/fossil-init@.service13
-rw-r--r--src/fossil-test@.service4
3 files changed, 20 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index bdcbef9..3a50446 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@ unit_files_basenames = $(addprefix $(our_name)@.,service path timer)
7unit_files = $(addprefix src/,$(unit_files_basenames)) 7unit_files = $(addprefix src/,$(unit_files_basenames))
8unit_instances = $(subst @,@"$(unit_instance_name)",$(unit_files_basenames)) 8unit_instances = $(subst @,@"$(unit_instance_name)",$(unit_files_basenames))
9unit_instance = $(our_name)@$(unit_instance_name).service 9unit_instance = $(our_name)@$(unit_instance_name).service
10fossil_test_instances = '$(shell systemd-escape fossil-instance-1)' '$(shell systemd-escape a/b/c/fossil-instance-2)'
10 11
11default: install start test 12default: install start test
12install: 13install:
@@ -19,6 +20,8 @@ start stop restart status show: | $(fossil_database)
19follow: 20follow:
20 journalctl --user $(addprefix -u , $(unit_instances)) -f 21 journalctl --user $(addprefix -u , $(unit_instances)) -f
21test deps: 22test deps:
23 mkdir -p $HOME/src/a/b/c
24 systemctl --user start --wait $(addprefix fossil-init@,$(fossil_test_instances))
22 sudo $(MAKE) -$(MAKEFLAGS) $@ 25 sudo $(MAKE) -$(MAKEFLAGS) $@
23 26
24 27
@@ -43,7 +46,7 @@ else
43$(error "you must define THE_USER") 46$(error "you must define THE_USER")
44endif 47endif
45unitdir = /etc/systemd/system 48unitdir = /etc/systemd/system
46unit_files = $(addprefix src/fossil-user,@.service .socket) src/fossil-test@.service 49unit_files = $(addprefix src/fossil-user,@.service .socket) src/fossil-test@.service src/fossil-init@.service
47units = $(filter-out %@.service,$(notdir $(unit_files))) 50units = $(filter-out %@.service,$(notdir $(unit_files)))
48executables = src/endofossil 51executables = src/endofossil
49bindir = /usr/local/bin 52bindir = /usr/local/bin
diff --git a/src/fossil-init@.service b/src/fossil-init@.service
new file mode 100644
index 0000000..6e300b0
--- /dev/null
+++ b/src/fossil-init@.service
@@ -0,0 +1,13 @@
1[Unit]
2Description = Create new Fossil repositories on endofossil search path
3ConditionUser = !root
4
5[Service]
6Type = oneshot
7ExecStart = sh -ec '\
8mkdir -p "$HOME"/src; \
9cd "$HOME"/src/"$(dirname "$0")"; \
10fossil=$${0##*/}; \
11[ ! -e "$fossil".fossil ] || exit 0; \
12fossil init ./"$fossil".fossil \
13' "%I"
diff --git a/src/fossil-test@.service b/src/fossil-test@.service
index 56e1a21..1643925 100644
--- a/src/fossil-test@.service
+++ b/src/fossil-test@.service
@@ -24,5 +24,7 @@ ssh-keygen -t ed25519 -f .ssh/id_ed25519 -N ""; \
24ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new -- %i@localhost :; \ 24ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new -- %i@localhost :; \
25ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -- %i@localhost uptime; \ 25ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -- %i@localhost uptime; \
26cd .ssh; \ 26cd .ssh; \
27fossil clone ssh://%i@localhost/src/fossil/db db~$(date -Ins).fossil; \ 27fossil clone ssh://%i@localhost/fossil-instance-1 db~$(date -Ins).fossil; \
28fossil clone ssh://%i@localhost/a/b/c/fossil-instance-2 db~$(date -Ins).fossil; \
29fossil clone ssh://%i@localhost/fossil/db db~$(date -Ins).fossil; \
28' 30'