From 202f7fe8f9ff2ed4ec8d2837bb6a402f731a179f Mon Sep 17 00:00:00 2001 From: zimbatm <zimbatm@zimbatm.com> Date: Sun, 26 Apr 2020 18:42:20 +0200 Subject: [PATCH] users/lib.nix: allow to pass the full user --- users/lib.nix | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) 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; }