network/nix/pkgs/subnetplans.nix

55 lines
1.4 KiB
Nix

{ self, nixpkgs, system }:
with nixpkgs.legacyPackages.${system};
let
config = self.lib.config;
in
rec {
subnetplan4 =
stdenv.mkDerivation {
name = "subnetplan4.html";
src = builtins.toFile "subnets4.txt" (
lib.concatMapStringsSep "\n" (net:
"${config.site.net.${net}.subnet4} ${net}"
) (builtins.attrNames (
lib.filterAttrs (_: { subnet4, ... }: subnet4 != null)
config.site.net
))
);
buildInputs = [
(import ./subnetplan { inherit pkgs; })
];
buildCommand = ''
subnetplan < $src > $out
'';
};
subnetplan6 =
stdenv.mkDerivation {
name = "subnetplan6.html";
src = builtins.toFile "subnets6.txt" (
lib.concatMapStrings (net:
lib.concatMapStrings (ctx: ''
${config.site.net.${net}.subnets6.${ctx}} ${net}
'') (builtins.attrNames config.site.net.${net}.subnets6)
) (builtins.attrNames config.site.net)
);
buildInputs = [
(import ./subnetplan { inherit pkgs; })
];
buildCommand = ''
subnetplan < $src > $out
'';
};
subnetplans = runCommand "subnetplans" {} ''
DIR=$out/share/doc/zentralwerk
mkdir -p $DIR $out/nix-support
${lib.concatMapStrings (pkg: ''
ln -s ${pkg} $DIR/${pkg.name}
echo doc report $DIR/${pkg.name} >> $out/nix-support/hydra-build-products
'') [ subnetplan4 subnetplan6 ]}
'';
}