1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-12-01 06:31:04 +01:00

podman: link dependent quadlets during build

podman's systemd generator can automatically resolve unit dependencies, so instead of us guessing these links to create them, we provide the sources during generation
This commit is contained in:
Nicholas Hassan 2025-02-13 14:17:16 +10:30 committed by Austin Horstman
parent 4108ec3aa8
commit 81bf639da7
10 changed files with 96 additions and 91 deletions

View file

@ -7,7 +7,7 @@ let
createQuadletSource = name: buildDef:
let
buildConfig = podman-lib.deepMerge {
quadlet = podman-lib.deepMerge {
Build = {
AuthFile = buildDef.authFile;
Environment = buildDef.environment;
@ -30,21 +30,26 @@ let
};
Unit = { Description = buildDef.description; };
} buildDef.extraConfig;
in ''
# Automatically generated by home-manager for podman build configuration
# DO NOT EDIT THIS FILE DIRECTLY
#
# ${name}.build
${podman-lib.toQuadletIni buildConfig}
'';
in {
attrs = quadlet;
text = ''
# Automatically generated by home-manager for podman build configuration
# DO NOT EDIT THIS FILE DIRECTLY
#
# ${name}.build
${podman-lib.toQuadletIni quadlet}
'';
};
toQuadletInternal = name: buildDef: {
assertions = podman-lib.buildConfigAsserts name buildDef.extraConfig;
serviceName =
"podman-${name}"; # quadlet service name: 'podman-<name>-build.service
source = podman-lib.removeBlankLines (createQuadletSource name buildDef);
resourceType = "build";
};
toQuadletInternal = name: buildDef:
let src = createQuadletSource name buildDef;
in {
assertions = podman-lib.buildConfigAsserts name buildDef.extraConfig;
serviceName =
"podman-${name}"; # generated service name: 'podman-<name>-build.service
source = podman-lib.removeBlankLines src.text;
resourceType = "build";
};
in let
buildDefinitionType = types.submodule ({ name, ... }: {
options = {