.. code:: console
nix build --out-link result-service
- systemctl --user link --force "$(realpath result-service/share/systemd/user/onechat.service)"
+ systemctl --user link --force "$PWD/result-service/share/systemd/user/onechat.service"
systemctl --user edit onechat.service
In the editor, set the data directory with this drop-in. Replace
ONECHAT_DIR=DATA_DIR ./result-service/bin/onechat chat
journalctl --user -u onechat.service -f
-After ``git pull``, build with the same result link, link the unit
-again, reload the user manager, and restart the service:
+After a pull, update the package and unit with:
.. code:: console
- nix build --out-link result-service
- systemctl --user link --force "$(realpath result-service/share/systemd/user/onechat.service)"
- systemctl --user daemon-reload
- systemctl --user restart onechat.service
+ git pull
+ bin/service-update
+
+The script builds with the same ``result-service`` link, reloads the
+user manager, and restarts the service only if it is active. The unit
+link follows ``result-service``, so no new link is needed.
The service starts with the user manager at login, not at boot without a
login. To stop it, or also remove its start at login:
files '*.nix' | xargs nixfmt --check
files '*.rst' | xargs rstfmt --check
files '*.md' | xargs mdformat --check
-shellcheck bin/check bin/format bin/reflow .githooks/commit-msg
+shellcheck bin/check bin/format bin/reflow bin/service-update .githooks/commit-msg