lib: _: with lib; rec { my = import ./my.nix lib; dns = import ./dns.nix; isEven = number: assert (builtins.isInt number) || (builtins.isFloat number); builtins.div number 2 == 0; isOdd = number: !isEven number; pow = base: exponent: assert (builtins.isInt base) && (builtins.isInt exponent); assert exponent > 0; builtins.foldl' (x: _: x * base) 1 (builtins.genList (_: _) exponent); mkTcpMem = min: ini: max: assert min <= ini && ini <= max; concatMapStrings (x: toString x + " ") ( map (pow 2) [ min ini max ] ); modulesIn = dir: pipe dir [ builtins.readDir (mapAttrsToList ( name: type: if type == "regular" && hasSuffix ".nix" name && name != "default.nix" then [ { name = removeSuffix ".nix" name; value = dir + "/${name}"; } ] else if type == "directory" && pathExists (dir + "/${name}/default.nix") then [ { inherit name; value = dir + "/${name}"; } ] else [ ] )) concatLists listToAttrs ]; moduleFromRef = module: ref: sha256: { disabledModules = [ module ]; imports = [ ( let src = builtins.fetchTarball { url = let cons = splitString ":" ref; owner = head cons; branch = last cons; in "https://github.com/${owner}/nixpkgs/archive/refs/heads/${branch}.tar.gz"; inherit sha256; }; in "${src}/nixos/modules/${module}" ) ]; }; }