41 lines
1.2 KiB
Nix
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;
|
|
};
|
|
}
|