From 663138ae4c9c22448def3653a06c9e7e15503de8 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Fri, 1 Dec 2017 12:37:10 +0100 Subject: [PATCH] feat(lib): add octalToDecimal --- default.nix | 2 +- lib.nix | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 {