diff --git a/users/lib.nix b/users/lib.nix index 245ac4a..6e3eec8 100644 --- a/users/lib.nix +++ b/users/lib.nix @@ -1,19 +1,17 @@ { lib }: - let chrs = lib.listToAttrs (lib.imap (i: v: { name = v; value = i + 96; }) lib.lowerChars); ord = c: builtins.getAttr c chrs; - in { # Make a unique UID from a 4-char identifier - mkUid = id: let - # TODO: Assert length - chars = lib.stringToCharacters id; - n = builtins.map (c: lib.mod (ord c) 10) chars; - s = builtins.concatStringsSep "" (builtins.map (i: builtins.toString i) n); - - in - assert lib.length chars == 4; - 1000 + lib.toInt s; + mkUid = id: + let + chars = lib.stringToCharacters (builtins.substring 0 4 id); + n = builtins.map (c: lib.mod (ord c) 10) chars; + s = builtins.concatStringsSep "" (builtins.map (i: builtins.toString i) n); + in + assert builtins.stringLength id >= 4; + assert builtins.length chars == 4; + 1000 + lib.toInt s; }