add himalaya-watch@.service

As discussed in
<https://github.com/nix-community/home-manager/issues/5069>.

I set `ExecStart=%install_dir%/himalaya` so when packaging himalaya
people nee to explicitly set the path to himalaya (i.e. `sed
's:%install_dir%:/usr/bin:' assets/himalaya-watch@.service`). This is
done automatically in `install.sh` if `$PREFIX` is `/usr`, Otherwise
the packager should handle it themselves

For `nix` it would be (`sed 's:%install_dir%:$out/bin:'
assets/himalaya-watch@.service`). I don't know where it should be placed
(probably `$out/share/systemd/user` as nix will add that to
`$XDG_DATA_DIRS` which is searched by `systemctl --user`.

I swear I checked the address like 4 times before sending the email, I
have no idea how I managed to mess it up T-T. I was wondering why the
formatting was so messed up in sr.ht.
This commit is contained in:
Jalil David Salamé Messina 2024-03-07 18:41:56 +01:00 committed by Clément DOUIN
parent 8867c99b91
commit da49352d4e
No known key found for this signature in database
GPG key ID: 353E4A18EE0FAB72
2 changed files with 20 additions and 0 deletions

View file

@ -0,0 +1,13 @@
[Unit]
Description=Email client Himalaya CLI envelopes watcher service
After=network.target
[Service]
Type=exec
ExecStart=%install_dir%/himalaya envelopes watch --account %i
ExecSearchPath=/bin
Restart=always
RestartSec=10
[Install]
WantedBy=default.target

View file

@ -32,4 +32,11 @@ tar -xzf "$tmpdir/himalaya.tar.gz" -C "$tmpdir"
mkdir -p "$PREFIX/bin"
cp -f -- "$tmpdir/$binary" "$PREFIX/bin/$binary"
# See User Unit Search Path in `man systemd.unit(5)`
if [ "$system" = "linux" ] && [ "$PREFIX" = "/usr" ]; then
mkdir -p "$PREFIX/lib/systemd/user"
sed "s:%install_dir%:$PREFIX/bin:" "$tmpdir/assets/himalaya-watch@.service" \
> "$PREFIX/lib/systemd/user/himalaya-watch@.service"
fi
die "$("$PREFIX/bin/$binary" --version) installed!" 0