blob: 30850b8d65304264c923d48f383f4f6b405b7e6c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
ifneq (0,$(shell id -u))
fossil_database = db.fossil
unitdir = "$${XDG_CONFIG_HOME:-$$HOME/.config}/systemd/user"
unit_instance_name != systemd-escape "$$(realpath "$(fossil_database)")"
our_name = fossil-sync
unit_files_basenames = $(addprefix $(our_name)@.,service path timer)
unit_files = $(addprefix src/,$(unit_files_basenames))
unit_instances = $(subst @,@"$(unit_instance_name)",$(unit_files_basenames))
unit_instance = $(our_name)@$(unit_instance_name).service
default: install start ui
install:
install -m644 -t $(unitdir) -- $(unit_files)
systemctl --user daemon-reload
sudo make $@
start stop restart status show: | $(fossil_database)
systemctl --user $@ $(unit_instances)
follow:
journalctl --user $(addprefix -u , $(unit_instances)) -f
ui: | work/.fslckout
cd work && fossil ui
$(fossil_database):
fossil init $@
work:
mkdir -p $@
work/.fslckout: | work $(fossil_database)
cd work && fossil open ../$(fossil_database)
else
ifdef SUDO_USER
THE_USER=$(SUDO_USER)
else
$(error "you must define THE_USER")
endif
unitdir = /etc/systemd/system
unit_files = $(addprefix src/fossil-user,@.service .socket)
units = $(filter-out %@.service,$(notdir $(unit_files)))
executables = src/endofossil
bindir = /usr/local/bin
default: install start follow
install:
install -t /etc/ssh/ -- src/AuthorizedKeysCommand
install -T -- src/AnonymousForceCommand /etc/ssh/user-$(THE_USER).AnonymousForceCommand
install -m644 -t /etc/ssh/sshd_config.d -- src/fossil-user.conf
install -m644 -t $(unitdir) -- $(unit_files)
install -t $(bindir) -- $(executables)
systemctl daemon-reload
test: install
su - u -c 'fossil clone ssh://d@localhost/fossil/db db~$$(date -Ins).fossil'
start stop restart status show:
systemctl $@ $(units)
follow:
journalctl $(addprefix -u , $(units)) -f
endif
|