Initial commit
This commit is contained in:
26
lib/vpsadminos/local.nix
Normal file
26
lib/vpsadminos/local.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
let
|
||||
nixpkgsPath = "/home/aither/workspace/vpsadmin/nixpkgs";
|
||||
vpsadminosPath = "/home/aither/workspace/vpsadmin/vpsadminos";
|
||||
|
||||
in
|
||||
{
|
||||
vpsadminos = {configuration, modules ? []}:
|
||||
let
|
||||
# this is fed into scopedImport so vpsadminos sees correct <nixpkgs> everywhere
|
||||
overrides = {
|
||||
__nixPath = [
|
||||
{ prefix = "nixpkgs"; path = nixpkgsPath; }
|
||||
{ prefix = "vpsadminos"; path = vpsadminosPath; }
|
||||
] ++ builtins.nixPath;
|
||||
import = fn: scopedImport overrides fn;
|
||||
scopedImport = attrs: fn: scopedImport (overrides // attrs) fn;
|
||||
builtins = builtins // overrides;
|
||||
};
|
||||
in
|
||||
builtins.scopedImport overrides (vpsadminosPath + "/os/") {
|
||||
nixpkgs = nixpkgsPath;
|
||||
system = "x86_64-linux";
|
||||
extraModules = modules;
|
||||
inherit configuration;
|
||||
};
|
||||
}
|
||||
40
lib/vpsadminos/pinned.nix
Normal file
40
lib/vpsadminos/pinned.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
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;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user