diff --git a/modules/systemd.nix b/modules/systemd.nix index ed630b361..f7325b41f 100644 --- a/modules/systemd.nix +++ b/modules/systemd.nix @@ -27,11 +27,17 @@ let buildService = style: name: serviceCfg: let filename = "${name}.${style}"; + pathSafeName = lib.replaceChars ["@" ":" "\\" "[" "]"] + ["-" "-" "-" "" "" ] + filename; # Needed because systemd derives unit names from the ultimate # link target. - source = pkgs.writeTextDir filename (toSystemdIni serviceCfg) - + "/" + filename; + source = pkgs.writeTextFile { + name = pathSafeName; + text = toSystemdIni serviceCfg; + destination = "/${filename}"; + } + "/${filename}"; wantedBy = target: {