diff options
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | src/fossil-init@.service | 13 | ||||
-rw-r--r-- | src/fossil-test@.service | 4 |
3 files changed, 20 insertions, 2 deletions
@@ -7,6 +7,7 @@ unit_files_basenames = $(addprefix $(our_name)@.,service path timer) | |||
7 | unit_files = $(addprefix src/,$(unit_files_basenames)) | 7 | unit_files = $(addprefix src/,$(unit_files_basenames)) |
8 | unit_instances = $(subst @,@"$(unit_instance_name)",$(unit_files_basenames)) | 8 | unit_instances = $(subst @,@"$(unit_instance_name)",$(unit_files_basenames)) |
9 | unit_instance = $(our_name)@$(unit_instance_name).service | 9 | unit_instance = $(our_name)@$(unit_instance_name).service |
10 | fossil_test_instances = '$(shell systemd-escape fossil-instance-1)' '$(shell systemd-escape a/b/c/fossil-instance-2)' | ||
10 | 11 | ||
11 | default: install start test | 12 | default: install start test |
12 | install: | 13 | install: |
@@ -19,6 +20,8 @@ start stop restart status show: | $(fossil_database) | |||
19 | follow: | 20 | follow: |
20 | journalctl --user $(addprefix -u , $(unit_instances)) -f | 21 | journalctl --user $(addprefix -u , $(unit_instances)) -f |
21 | test deps: | 22 | test 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") |
44 | endif | 47 | endif |
45 | unitdir = /etc/systemd/system | 48 | unitdir = /etc/systemd/system |
46 | unit_files = $(addprefix src/fossil-user,@.service .socket) src/fossil-test@.service | 49 | unit_files = $(addprefix src/fossil-user,@.service .socket) src/fossil-test@.service src/fossil-init@.service |
47 | units = $(filter-out %@.service,$(notdir $(unit_files))) | 50 | units = $(filter-out %@.service,$(notdir $(unit_files))) |
48 | executables = src/endofossil | 51 | executables = src/endofossil |
49 | bindir = /usr/local/bin | 52 | bindir = /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] | ||
2 | Description = Create new Fossil repositories on endofossil search path | ||
3 | ConditionUser = !root | ||
4 | |||
5 | [Service] | ||
6 | Type = oneshot | ||
7 | ExecStart = sh -ec '\ | ||
8 | mkdir -p "$HOME"/src; \ | ||
9 | cd "$HOME"/src/"$(dirname "$0")"; \ | ||
10 | fossil=$${0##*/}; \ | ||
11 | [ ! -e "$fossil".fossil ] || exit 0; \ | ||
12 | fossil 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 ""; \ | |||
24 | ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new -- %i@localhost :; \ | 24 | ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new -- %i@localhost :; \ |
25 | ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -- %i@localhost uptime; \ | 25 | ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -- %i@localhost uptime; \ |
26 | cd .ssh; \ | 26 | cd .ssh; \ |
27 | fossil clone ssh://%i@localhost/src/fossil/db db~$(date -Ins).fossil; \ | 27 | fossil clone ssh://%i@localhost/fossil-instance-1 db~$(date -Ins).fossil; \ |
28 | fossil clone ssh://%i@localhost/a/b/c/fossil-instance-2 db~$(date -Ins).fossil; \ | ||
29 | fossil clone ssh://%i@localhost/fossil/db db~$(date -Ins).fossil; \ | ||
28 | ' | 30 | ' |