blob: 8451d2696bb37ea6bdbbf9924c869f1a08baa952 (
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
systemctl_start_units = fossil-user.socket
systemctl_user_start_units = fossil-httpd.socket
ifneq (0,$(shell id -u))
fossil_database = db.fossil
fossil_instance_name != systemd-escape "$$(realpath $(fossil_database))"
systemctl_user_start_units += $(addprefix fossil-sync@$(fossil_instance_name).,service timer path)
default: install test
install:
sudo make install-deps install
systemctl --user daemon-reload
make start
start stop restart status show: | $(fossil_database)
systemctl --user $@ $(systemctl_user_start_units)
follow:
journalctl --user $(addprefix -u , $(systemctl_user_start_units)) -f
ui: | work/.fslckout
cd work && fossil ui
fossil_test_instances = \
'$(shell systemd-escape fossil-test-instance-1)' \
'$(shell systemd-escape a/b/c/fossil-test-instance-2)'
test:
mkdir -p $(HOME)/src/a/b/c
systemctl --user start --wait $(addprefix fossil-init@,$(fossil_test_instances))
sudo $(MAKE) -$(MAKEFLAGS) $@
$(fossil_database):
fossil init $@
work:
mkdir -p $@
work/.fslckout: | work $(fossil_database)
cd work && fossil open ../$(fossil_database)
else
user_unit_files = $(wildcard $(addprefix src/user/*.,timer service path socket))
root_unit_files = $(wildcard $(addprefix src/*.,timer service path socket))
systemd_system_dir=/etc/systemd/system
systemd_user_dir=/etc/systemd/user
executables = src/endofossil
bindir = /usr/local/bin
dependencies = socat fossil ssh openssh-server fakeroot
SSH_USERNAME != if [ "$$SUDO_USER" ]; then echo "$$SUDO_USER"; else id -u; fi
default: install start follow
install:
install -t "$(bindir)" -- $(executables)
install -t /etc/ssh/ -- src/AuthorizedKeysCommand
install -T -- src/AnonymousForceCommand /etc/ssh/user-"$(SSH_USERNAME)".AnonymousForceCommand
install -m644 -t /etc/ssh/sshd_config.d -- src/fossil-user.conf
install -m644 -t "$(systemd_system_dir)" -- $(root_unit_files)
install -m644 -t "$(systemd_user_dir)" -- $(user_unit_files)
systemctl daemon-reload
systemctl reload ssh
systemctl start --wait fossil-disable-apache@-
install -m644 -t /etc/apache2/sites-available -- src/fossil.conf~template
systemctl start --wait fossil-enable-apache@-
make start
deps install-deps:
apt install --mark-auto --no-upgrade $(dependencies)
test: install
journalctl -f -u fossil-test@$(SSH_USERNAME) & p=$$!; systemctl start --wait fossil-test@$(SSH_USERNAME); sleep 1; kill $$p
start stop restart status show:
systemctl $@ $(systemctl_start_units)
follow:
journalctl $(addprefix -u , $(systemctl_start_units)) -f
endif
|