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 USER_HOME != getent passwd $(SSH_USERNAME) | (IFS=: read _ _ _ _ _ h _ && [ "$$h" ] && printf '%s\n' "$$h") default: install start follow install: install -t "$(bindir)" -- $(executables) install -t /etc/ssh/ -- src/openssh/AuthorizedKeysCommand install -T -- src/openssh/AnonymousForceCommand /etc/ssh/user-"$(SSH_USERNAME)".AnonymousForceCommand install -m644 -t /etc/ssh/sshd_config.d -- src/openssh/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@- ln -sf -t /var/lib $(USER_HOME)/.cache/fossil-httpd.S install -m644 -T -- src/apache/fossil.conf~template /etc/apache2/sites-available/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