diff --git a/default.nix b/default.nix index bf1f569..9b6967a 100644 --- a/default.nix +++ b/default.nix @@ -14,7 +14,7 @@ let args = { inherit pkgs; name = "default"; - k8s = { inherit loadJSON loadYAML toBase64 mkValueOrSecretOption; }; + k8s = { inherit loadJSON loadYAML toBase64 octalToDecimal mkValueOrSecretOption; }; }; }; diff --git a/lib.nix b/lib.nix index 876aa78..1661f82 100644 --- a/lib.nix +++ b/lib.nix @@ -30,6 +30,14 @@ rec { builtins.readFile (pkgs.runCommand "value-to-b64" {} "echo '${value}' | ${pkgs.coreutils}/bin/base64 -w0 > $out"); + exp = base: exp: foldr (value: acc: acc * base) 1 (range 1 exp); + + octalToDecimal = value: + (foldr (char: acc: { + i = acc.i + 1; + value = acc.value + (toInt char) * (exp 8 acc.i); + }) {i = 0; value = 0;} (stringToCharacters value)).value; + mkValueOrSecretOption = {...}@options: mkOption ({ type = types.nullOr (types.either types.str (types.submodule { options.secret = mkOption {