podman: use quadlet source from file drv (#7102)

fixes potentially unwanted variable substitution
This commit is contained in:
Nick Hassan
2025-05-31 00:55:03 +09:30
committed by GitHub
parent d36ac1f0db
commit d800d198b8

View File

@@ -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