Minor cleanup
This commit is contained in:
+3
-10
@@ -5,14 +5,6 @@ let
|
||||
pvvv6Prefix = builtins.substring 0 14 (normalizev6 "2001:700:300:1900::");
|
||||
domainSuffix = ".pvv.ntnu.no.";
|
||||
|
||||
# Pad a number or string with zeroes to length 4 (32 -> "0032")
|
||||
padTo4 =
|
||||
n:
|
||||
let
|
||||
padded = "0000${toString n}";
|
||||
in
|
||||
builtins.substring (builtins.stringLength padded - 4) 4 padded;
|
||||
|
||||
# Takes an IPv6 address on the format nnnnXXXXnnnn (literal XXXX) and replaces XXXX with enough zeroes to make a full 128 bit address
|
||||
padDoubleColon =
|
||||
addr:
|
||||
@@ -20,8 +12,9 @@ let
|
||||
parts = lib.splitString "XXXX" addr;
|
||||
nibbleCount = builtins.foldl' builtins.add 0 (map builtins.stringLength parts);
|
||||
zeros = lib.concatStrings (builtins.genList (i: "0") (32 - nibbleCount));
|
||||
padding = lib.fixedWidthString (32 - nibbleCount) "0" "";
|
||||
in
|
||||
lib.replaceString "XXXX" zeros addr;
|
||||
lib.replaceString "XXXX" padding addr;
|
||||
|
||||
# Translate an IPv6 address (e.g. 2001:700:300:1900::1) into the fully expanded 20010700030019000000000000000001
|
||||
normalizev6 =
|
||||
@@ -29,7 +22,7 @@ let
|
||||
(lib.pipe addr [
|
||||
(lib.replaceString "::" ":XXXX:")
|
||||
(lib.splitString ":")
|
||||
(map padTo4)
|
||||
(map (lib.fixedWidthString 4 "0"))
|
||||
(map (lib.splitString ""))
|
||||
(lib.flatten)
|
||||
(lib.concatStrings)
|
||||
|
||||
Reference in New Issue
Block a user