test-vpsadminos-configuration/lib/vpsadminos/pinned.nix
2018-08-02 12:52:11 +02:00

41 lines
1.2 KiB
Nix

let
pkgs = import <nixpkgs> {};
in
{
vpsadminos_spec = builtins.fromJSON (builtins.readFile ./pinned/vpsadminos.json);
vpsadminosGit = builtins.trace vpsadminos_spec pkgs.fetchgit {
inherit (vpsadminos_spec) url rev sha256;
leaveDotGit = true;
};
nixpkgsVpsFree_spec = builtins.fromJSON (builtins.readFile ./pinned/nixpkgs-vpsfreecz.json);
nixpkgsVpsFreeGit = pkgs.fetchgit {
inherit (nixpkgsVpsFree_spec) url rev sha256;
leaveDotGit = true;
};
nixpkgsVpsFree = import nixpkgsVpsFreeGit {};
vpsadminos = {configuration, modules ? []}:
let
# this is fed into scopedImport so vpsadminos sees correct <nixpkgs> everywhere
overrides = {
__nixPath = [
{ prefix = "nixpkgs"; path = nixpkgsVpsFree.path; }
{ prefix = "vpsadminos"; path = vpsadminosGit; }
] ++ builtins.nixPath;
import = fn: scopedImport overrides fn;
scopedImport = attrs: fn: scopedImport (overrides // attrs) fn;
builtins = builtins // overrides;
};
in
builtins.scopedImport overrides (vpsadminosGit + "/os/") {
nixpkgs = nixpkgsVpsFree.path;
system = "x86_64-linux";
extraModules = modules;
inherit configuration;
};
}