42 lines
735 B
Nix
42 lines
735 B
Nix
{ lib }:
|
|
let
|
|
collectNixFiles =
|
|
dir:
|
|
lib.flatten (
|
|
lib.mapAttrsToList (
|
|
name: type:
|
|
let
|
|
path = dir + "/${name}";
|
|
in
|
|
if type == "directory" then
|
|
collectNixFiles path
|
|
else if type == "regular" && lib.hasSuffix ".nix" name then
|
|
[ path ]
|
|
else
|
|
[ ]
|
|
) (builtins.readDir dir)
|
|
);
|
|
in
|
|
{
|
|
inherit collectNixFiles;
|
|
|
|
bridgeName = id: "br-vlan${toString id}";
|
|
|
|
deriveMac =
|
|
name:
|
|
let
|
|
hash = builtins.hashString "sha256" name;
|
|
octet = i: builtins.substring (i * 2) 2 hash;
|
|
in
|
|
lib.concatStringsSep ":" (
|
|
[ "02" ]
|
|
++ map octet [
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
]
|
|
);
|
|
}
|