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 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; }; }