diff options
author | lassulus <lass@aidsballs.de> | 2016-10-20 21:19:26 +0200 |
---|---|---|
committer | lassulus <lass@aidsballs.de> | 2016-10-20 21:19:26 +0200 |
commit | 5cfe3f414097a16dfa84cd52739689e08b7fa0b3 (patch) | |
tree | 81ef0820be1d91961f18f2e75e2d9172bf865093 /krebs/4lib/genid.nix | |
parent | 51a9fb2dccf6996e1f4fe6f795076ebc6bc71d25 (diff) | |
parent | f47bab7f710b7c8a282c3a3c38affc8a0bc30cc9 (diff) |
Merge remote-tracking branch 'cd/master'
Diffstat (limited to 'krebs/4lib/genid.nix')
-rw-r--r-- | krebs/4lib/genid.nix | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/krebs/4lib/genid.nix b/krebs/4lib/genid.nix deleted file mode 100644 index 0aed1d351..000000000 --- a/krebs/4lib/genid.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, ... }: -with lib; -with builtins; -let out = genid; - - # id = genid s = (hash s + min) % max - # min <= genid s < max - # - # min = 2^24 = 16777216 = 0x001000000 - # max = 2^32 = 4294967296 = 0x100000000 - # - # id is bigger than UID of nobody and GID of nogroup - # see <nixos/modules/misc/ids.nix> and some spare for stuff like lxd. - # - # :: str -> uint32 - genid = s: sum16 (addmod16_16777216 (hash s)); - - # :: str -> list8 uint4 - hash = s: - map hexint (stringToCharacters (substring 32 8 (hashString "sha1" s))); - - # :: list uint -> uint - sum16 = foldl (a: i: a * 16 + i) 0; - - # :: list8 uint4 -> list1 uint8 ++ list6 uint4 - addmod16_16777216 = x: let - a = 16 * head x + head (tail x); - d = tail (tail x); - in [(mod (a + 1) 256)] ++ d; - - # :: char -> uint4 - hexint = x: hexvals.${toLower x}; - - # :: attrset char uint4 - hexvals = listToAttrs (imap (i: c: { name = c; value = i - 1; }) - (stringToCharacters "0123456789abcdef")); -in out |