{ self, nixpkgs, system }: let inherit (self.lib) config; export-config-file = builtins.toFile "config.nix" ( nixpkgs.lib.generators.toPretty {} config ); export-config = nixpkgs.legacyPackages.${system}.runCommandLocal "config.nix" {} '' cp ${export-config-file} $out ''; salt-pillar-file = hostName: builtins.toFile "${hostName}.yaml" ( nixpkgs.lib.generators.toPretty {} (self.lib.saltPillarFor hostName) ); salt-pillars = builtins.foldl' (result: hostName: result // { "${hostName}-pillar" = nixpkgs.legacyPackages.${system}.runCommandLocal "${hostName}-pillar.nix" {} '' cp ${salt-pillar-file hostName} $out ''; }) {} ( builtins.filter (hostName: builtins.elem config.site.hosts.${hostName}.role [ "server" "container" ] ) (builtins.attrNames config.site.hosts) ); test_vm = nixpkgs.legacyPackages.${system}.runCommandLocal "test_vm" { src = self.nixosConfigurations.test_vm.config.system.build.toplevel; } '' set -x mkdir -p $out/{bin,dev,etc,home,mnt,nix/store,nix/var,proc,root,run,sys,tmp,var,usr} ln -s $src/init $out/ ln -s $src/etc $out/etc/static ''; device-templates = import ./device-templates.nix { inherit self nixpkgs system; }; in salt-pillars // device-templates // { inherit export-config test_vm; }