systemd: remove filename hack

This commit is contained in:
Silvan Mosberger 2017-12-02 22:52:35 +01:00 committed by Robert Helgesson
parent f6900f0689
commit 8d360c5a57
No known key found for this signature in database
GPG key ID: C3DB11069E65DC86
2 changed files with 9 additions and 10 deletions

View file

@ -237,13 +237,7 @@ in
# i.e., if the executable bit of the source is the same we
# expect for the target. Otherwise, we copy the file and
# set the executable bit to the expected value.
#
# Note, as a special case we always copy systemd units
# because it derives the unit name from the ultimate link
# target, which may be a store path with the hash
# included.
if [[ ($executable == inherit || $isExecutable == $executable) \
&& $relTarget != *"/systemd/user/"* ]]; then
if [[ $executable == inherit || $isExecutable == $executable ]]; then
ln -s "$source" "$target"
else
cp "$source" "$target"

View file

@ -24,16 +24,21 @@ let
buildService = style: name: serviceCfg:
let
source = pkgs.writeText "${name}.${style}" (toSystemdIni serviceCfg);
filename = "${name}.${style}";
# Needed because systemd derives unit names from the ultimate
# link target.
source = pkgs.writeTextDir filename (toSystemdIni serviceCfg)
+ "/" + filename;
wantedBy = target:
{
name = "systemd/user/${target}.wants/${name}.${style}";
name = "systemd/user/${target}.wants/${filename}";
value = { inherit source; };
};
in
singleton {
name = "systemd/user/${name}.${style}";
name = "systemd/user/${filename}";
value = { inherit source; };
}
++