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 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/user-d.AnonymousForceCommand src/user-d.AuthorizedKeysCommand 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