tv nixpkgs-overlays: init

This module allows to have per-system nixpkgs-overlays and is required
because at the moment of committing, only xu has an up-to-date stockholm
development directory in /home/tv/stockholm.
This commit is contained in:
tv 2017-09-19 09:00:54 +02:00
parent 23fcf1c4e9
commit 388bed4820
4 changed files with 30 additions and 5 deletions

View File

@ -155,5 +155,10 @@ with import <stockholm/lib>;
# The NixOS release to be compatible with for stateful data such as databases.
system.stateVersion = "15.09";
tv.nixpkgs-overlays = {
krebs = "/home/tv/stockholm/krebs/5pkgs";
tv = "/home/tv/stockholm/tv/5pkgs";
};
virtualisation.virtualbox.host.enable = true;
}

View File

@ -90,11 +90,7 @@ with import <stockholm/lib>;
environment.variables = {
NIX_PATH = mkForce (concatStringsSep ":" [
"secrets=/var/src/stockholm/null"
"nixpkgs-overlays=${pkgs.runCommand "nixpkgs-overlays" {} ''
mkdir $out
ln -s /home/tv/stockholm/krebs/5pkgs $out/krebs
ln -s /home/tv/stockholm/tv/5pkgs $out/tv
''}"
"nixpkgs-overlays=${config.tv.nixpkgs-overlays}"
"/var/src"
]);
};

View File

@ -6,6 +6,7 @@ _:
./ejabberd
./hosts.nix
./iptables.nix
./nixpkgs-overlays.nix
./x0vncserver.nix
];
}

View File

@ -0,0 +1,23 @@
with import <stockholm/lib>;
{ config, pkgs, ... }: {
options.tv.nixpkgs-overlays = mkOption {
apply = src:
pkgs.runCommand "nixpkgs-overlays" {} ''
mkdir $out
${concatStringsSep "\n" (mapAttrsToList (name: path:
"ln -s ${shell.escape path} $out/${shell.escape name}"
) src)}
'' // {
inherit src;
};
type = types.attrsOf types.absolute-pathname;
};
config = {
tv.nixpkgs-overlays = {
krebs = mkDefault "/var/src/stockholm/krebs/5pkgs";
tv = mkDefault "/var/src/stockholm/tv/5pkgs";
};
};
}