forked from zentralwerk/network
30 lines
633 B
Nix
30 lines
633 B
Nix
{ config, pkgs, ... }:
|
|
with pkgs;
|
|
with lib;
|
|
rec {
|
|
sort = builtins.sort (a: b:
|
|
if builtins.isList a && builtins.isList b
|
|
then compareLists a b
|
|
else a < b
|
|
);
|
|
sortBy = f: builtins.sort (a: b:
|
|
let
|
|
ra = f a;
|
|
rb = f b;
|
|
in
|
|
if builtins.isList ra && builtins.isList rb
|
|
then compareLists compare ra rb < 0
|
|
else ra < rb
|
|
);
|
|
sortNetsByVlan = builtins.sort (net1: net2:
|
|
let
|
|
vlan1 = config.site.net.${net1}.vlan;
|
|
vlan2 = config.site.net.${net2}.vlan;
|
|
in if vlan1 == null
|
|
then true
|
|
else if vlan2 == null
|
|
then false
|
|
else vlan1 < vlan2
|
|
);
|
|
}
|