mirror of
https://github.com/nix-community/home-manager.git
synced 2025-03-31 04:04:32 +00:00
podman: warn if values match a quadlet only by name
This commit is contained in:
parent
81bf639da7
commit
8bb071912b
1 changed files with 16 additions and 4 deletions
|
@ -32,20 +32,32 @@ let
|
|||
++ (withResolverFor "volume" containerDef.volumes);
|
||||
|
||||
checkQuadletReference = types: value:
|
||||
if builtins.isList value then
|
||||
let baseName = t: elemAt (splitString ".${t}" value) 0;
|
||||
in if builtins.isList value then
|
||||
builtins.concatLists (map (checkQuadletReference types) value)
|
||||
else
|
||||
let type = findFirst (t: hasInfix ".${t}" value) null types;
|
||||
in if (type != null) then
|
||||
let
|
||||
baseName = elemAt (splitString ".${type}" value) 0;
|
||||
quadletBaseName = baseName type;
|
||||
quadletsOfType =
|
||||
filterAttrs (n: v: v.quadletData.resourceType == type)
|
||||
cfg.internal.builtQuadlets;
|
||||
in if (hasAttr baseName quadletsOfType) then
|
||||
[ (replaceStrings [ baseName ] [ "podman-${baseName}" ] value) ]
|
||||
in if (hasAttr quadletBaseName quadletsOfType) then
|
||||
[
|
||||
(replaceStrings [ quadletBaseName ]
|
||||
[ "podman-${quadletBaseName}" ] value)
|
||||
]
|
||||
else
|
||||
[ value ]
|
||||
else if ((hasInfix "/nix/store" value) == false
|
||||
&& hasAttr value cfg.internal.builtQuadlets) then
|
||||
lib.warn ''
|
||||
A value for Podman container '${name}' might use a reference to another quadlet: ${value}.
|
||||
Append the type '.${
|
||||
cfg.internal.builtQuadlets.${value}.quadletData.resourceType
|
||||
}' to '${baseName value}' if this is intended.
|
||||
'' [ value ]
|
||||
else
|
||||
[ value ];
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue