network/nix/pkgs/switches/shared.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
);
}