deadnix check

This commit is contained in:
GTrunSec 2022-04-02 13:41:07 -07:00
parent e0d7a66cdc
commit 890b84be5e
No known key found for this signature in database
GPG key ID: 2368FAFA4ABDD2A0
23 changed files with 162 additions and 242 deletions

View file

@ -35,74 +35,17 @@ with lib; let
getSubOptions = finalType.getSubOptions;
getSubModules = finalType.getSubModules;
substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
typeMerge = t1: t2: null;
typeMerge = _t1: _t2: null;
functor = (defaultFunctor name) // {wrapped = finalType;};
};
};
mkOptionDefault = mkOverride 1001;
extraOptions = {
kubenix = {};
};
mergeValuesByKey = mergeKey: values:
listToAttrs (map
(value:
nameValuePair
(
if isAttrs value.${mergeKey}
then toString value.${mergeKey}.content
else (toString value.${mergeKey})
)
value)
values);
submoduleOf = ref:
types.submodule ({name, ...}: {
types.submodule ({ ...}: {
options = definitions."${ref}".options;
config = definitions."${ref}".config;
});
submoduleWithMergeOf = ref: mergeKey:
types.submodule ({name, ...}: let
convertName = name:
if definitions."${ref}".options.${mergeKey}.type == types.int
then toInt name
else name;
in {
options = definitions."${ref}".options;
config =
definitions."${ref}".config
// {
${mergeKey} = mkOverride 1002 (convertName name);
};
});
submoduleForDefinition = ref: resource: kind: group: version:
types.submodule ({name, ...}: {
options = definitions."${ref}".options // extraOptions;
config = mkMerge ([
definitions."${ref}".config
{
kind = mkOptionDefault kind;
apiVersion = mkOptionDefault version;
# metdata.name cannot use option default, due deep config
metadata.name = mkOptionDefault name;
}
]
++ (config.defaults.${resource} or [])
++ (config.defaults.all or []));
});
coerceAttrsOfSubmodulesToListByKey = ref: mergeKey: (
types.coercedTo
(types.listOf (submoduleOf ref))
(mergeValuesByKey mergeKey)
(types.attrsOf (submoduleWithMergeOf ref mergeKey))
);
definitions =
{
"google_rpc_Status" = {