diff --git a/modules/services/podman-linux/install-quadlet.nix b/modules/services/podman-linux/install-quadlet.nix index 66861256..a5326121 100644 --- a/modules/services/podman-linux/install-quadlet.nix +++ b/modules/services/podman-linux/install-quadlet.nix @@ -15,13 +15,19 @@ let # derivation to build a single Podman quadlet, outputting its systemd unit files buildPodmanQuadlet = quadlet: + let + quadletFile = pkgs.writeText "${quadlet.serviceName}.${quadlet.resourceType}" quadlet.source; + in pkgs.stdenv.mkDerivation { name = "home-${quadlet.resourceType}-${quadlet.serviceName}"; + src = quadletFile; + buildInputs = [ cfg.package ] ++ quadlet.dependencies; unpackPhase = '' mkdir -p $out/quadlets + ln -s $src $out/quadlets/${quadlet.serviceName}.${quadlet.resourceType} ${lib.concatStringsSep "\n" ( map ( v: @@ -34,9 +40,6 @@ let # Directory for systemd unit files mkdir -p $out/units - # Write the quadlet file - echo -n "${quadlet.source}" > $out/quadlets/${quadlet.serviceName}.${quadlet.resourceType} - # Generate systemd unit file/s from the quadlet file export QUADLET_UNIT_DIRS=$out/quadlets ${cfg.package}/lib/systemd/user-generators/podman-user-generator $out/units