systemd: remove filename hack

This commit is contained in:
Silvan Mosberger 2017-12-02 22:52:35 +01:00
parent c023b0532a
commit 5c065e6e0e
2 changed files with 7 additions and 10 deletions

View file

@ -254,13 +254,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,19 @@ 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; };
}
++