forked from pub-solar/os
fixup: distinguish self and userSelf
This commit is contained in:
parent
19c900e293
commit
c24199649a
|
@ -1,4 +1,4 @@
|
||||||
{ lib, nixpkgs, self, inputs, ... }:
|
{ lib, nixpkgs, userSelf, inputs, ... }:
|
||||||
|
|
||||||
{ modules, ... } @ args:
|
{ modules, ... } @ args:
|
||||||
lib.nixosSystem (args // {
|
lib.nixosSystem (args // {
|
||||||
|
@ -27,11 +27,11 @@ lib.nixosSystem (args // {
|
||||||
|
|
||||||
isoImage.isoBaseName = "nixos-" + config.networking.hostName;
|
isoImage.isoBaseName = "nixos-" + config.networking.hostName;
|
||||||
isoImage.contents = [{
|
isoImage.contents = [{
|
||||||
source = self;
|
source = userSelf;
|
||||||
target = "/devos/";
|
target = "/devos/";
|
||||||
}];
|
}];
|
||||||
isoImage.storeContents = [
|
isoImage.storeContents = [
|
||||||
self.devShell.${config.nixpkgs.system}
|
userSelf.devShell.${config.nixpkgs.system}
|
||||||
# include also closures that are "switched off" by the
|
# include also closures that are "switched off" by the
|
||||||
# above profile filter on the local config attribute
|
# above profile filter on the local config attribute
|
||||||
fullHostConfig.system.build.toplevel
|
fullHostConfig.system.build.toplevel
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, self, ... }:
|
{ lib, userSelf, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
|
@ -6,7 +6,7 @@ let
|
||||||
mapAttrs' (user: v: nameValuePair "${user}@${host}" v.home)
|
mapAttrs' (user: v: nameValuePair "${user}@${host}" v.home)
|
||||||
config.config.system.build.homes;
|
config.config.system.build.homes;
|
||||||
|
|
||||||
hmConfigs = mapAttrs mkHomes self.nixosConfigurations;
|
hmConfigs = mapAttrs mkHomes userSelf.nixosConfigurations;
|
||||||
|
|
||||||
in
|
in
|
||||||
foldl recursiveUpdate { } (attrValues hmConfigs)
|
foldl recursiveUpdate { } (attrValues hmConfigs)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, dev, nixpkgs, inputs, self, ... }:
|
{ lib, dev, nixpkgs, inputs, userSelf, ... }:
|
||||||
|
|
||||||
{ dir, extern, suites, overrides, multiPkgs, ... }:
|
{ dir, extern, suites, overrides, multiPkgs, ... }:
|
||||||
let
|
let
|
||||||
|
@ -29,7 +29,7 @@ let
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
|
|
||||||
extraSpecialArgs = extern.userSpecialArgs // { suites = suites.user; };
|
extraSpecialArgs = extern.userSpecialArgs // { suites = suites.user; };
|
||||||
sharedModules = extern.userModules ++ (builtins.attrValues self.homeModules);
|
sharedModules = extern.userModules ++ (builtins.attrValues userSelf.homeModules);
|
||||||
};
|
};
|
||||||
users.mutableUsers = lib.mkDefault false;
|
users.mutableUsers = lib.mkDefault false;
|
||||||
|
|
||||||
|
@ -37,14 +37,14 @@ let
|
||||||
|
|
||||||
nix.nixPath = [
|
nix.nixPath = [
|
||||||
"nixpkgs=${nixpkgs}"
|
"nixpkgs=${nixpkgs}"
|
||||||
"nixos-config=${self}/compat/nixos"
|
"nixos-config=${userSelf}/compat/nixos"
|
||||||
"home-manager=${inputs.home}"
|
"home-manager=${inputs.home}"
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.pkgs = lib.mkDefault multiPkgs.${config.nixpkgs.system};
|
nixpkgs.pkgs = lib.mkDefault multiPkgs.${config.nixpkgs.system};
|
||||||
|
|
||||||
nix.registry = {
|
nix.registry = {
|
||||||
devos.flake = self;
|
devos.flake = userSelf;
|
||||||
nixos.flake = nixpkgs;
|
nixos.flake = nixpkgs;
|
||||||
override.flake = inputs.override;
|
override.flake = inputs.override;
|
||||||
};
|
};
|
||||||
|
@ -57,11 +57,11 @@ let
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
system.configurationRevision = lib.mkIf (self ? rev) self.rev;
|
system.configurationRevision = lib.mkIf (userSelf ? rev) userSelf.rev;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Everything in `./modules/list.nix`.
|
# Everything in `./modules/list.nix`.
|
||||||
flakeModules = { imports = builtins.attrValues self.nixosModules ++ extern.modules; };
|
flakeModules = { imports = builtins.attrValues userSelf.nixosModules ++ extern.modules; };
|
||||||
|
|
||||||
cachix = ../../cachix.nix;
|
cachix = ../../cachix.nix;
|
||||||
};
|
};
|
||||||
|
@ -78,7 +78,7 @@ let
|
||||||
networking = { inherit hostName; };
|
networking = { inherit hostName; };
|
||||||
|
|
||||||
_module.args = {
|
_module.args = {
|
||||||
inherit self;
|
self = userSelf;
|
||||||
hosts = builtins.mapAttrs (_: host: host.config)
|
hosts = builtins.mapAttrs (_: host: host.config)
|
||||||
(removeAttrs hosts [ hostName ]);
|
(removeAttrs hosts [ hostName ]);
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{ lib, dev, self, ... }:
|
{ lib, dev, userSelf, ... }:
|
||||||
|
|
||||||
{ pkgs }:
|
{ pkgs }:
|
||||||
let
|
let
|
||||||
inherit (self) overlay overlays;
|
inherit (userSelf) overlay overlays;
|
||||||
packagesNames = lib.attrNames (overlay null null)
|
packagesNames = lib.attrNames (overlay null null)
|
||||||
++ lib.attrNames (dev.concatAttrs
|
++ lib.attrNames (dev.concatAttrs
|
||||||
(lib.attrValues
|
(lib.attrValues
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, dev, nixpkgs, self, inputs, ... }:
|
{ lib, dev, nixpkgs, userSelf, inputs, ... }:
|
||||||
|
|
||||||
{ extern, overrides }:
|
{ extern, overrides }:
|
||||||
(inputs.utils.lib.eachDefaultSystem
|
(inputs.utils.lib.eachDefaultSystem
|
||||||
|
@ -17,10 +17,10 @@
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
(overridesOverlay overridePkgs)
|
(overridesOverlay overridePkgs)
|
||||||
self.overlay
|
userSelf.overlay
|
||||||
]
|
]
|
||||||
++ extern.overlays
|
++ extern.overlays
|
||||||
++ (lib.attrValues self.overlays);
|
++ (lib.attrValues userSelf.overlays);
|
||||||
in
|
in
|
||||||
{ pkgs = dev.os.pkgImport nixpkgs overlays system; }
|
{ pkgs = dev.os.pkgImport nixpkgs overlays system; }
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,13 +7,15 @@ in
|
||||||
_: { self, ... } @ args:
|
_: { self, ... } @ args:
|
||||||
let
|
let
|
||||||
|
|
||||||
|
userSelf = self;
|
||||||
|
|
||||||
cfg = (dev.mkFlake.evalOldArgs { inherit args; }).config;
|
cfg = (dev.mkFlake.evalOldArgs { inherit args; }).config;
|
||||||
|
|
||||||
multiPkgs = os.mkPkgs { inherit (cfg) extern overrides; };
|
multiPkgs = os.mkPkgs { inherit (cfg) extern overrides; };
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
nixosConfigurations = os.mkHosts {
|
nixosConfigurations = os.mkHosts {
|
||||||
inherit self multiPkgs;
|
inherit userSelf multiPkgs;
|
||||||
inherit (cfg) extern suites overrides;
|
inherit (cfg) extern suites overrides;
|
||||||
dir = cfg.hosts;
|
dir = cfg.hosts;
|
||||||
};
|
};
|
||||||
|
@ -27,7 +29,7 @@ let
|
||||||
overlay = cfg.packages;
|
overlay = cfg.packages;
|
||||||
inherit (cfg) overlays;
|
inherit (cfg) overlays;
|
||||||
|
|
||||||
deploy.nodes = os.mkNodes deploy self.nixosConfigurations;
|
deploy.nodes = os.mkNodes deploy userSelf.nixosConfigurations;
|
||||||
};
|
};
|
||||||
|
|
||||||
systemOutputs = utils.lib.eachDefaultSystem (system:
|
systemOutputs = utils.lib.eachDefaultSystem (system:
|
||||||
|
@ -39,9 +41,9 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
checks = pkgs-lib.tests.mkChecks {
|
checks = pkgs-lib.tests.mkChecks {
|
||||||
inherit (self.deploy) nodes;
|
inherit (userSelf.deploy) nodes;
|
||||||
hosts = self.nixosConfigurations;
|
hosts = userSelf.nixosConfigurations;
|
||||||
homes = self.homeConfigurations;
|
homes = userSelf.homeConfigurations;
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit legacyPackages;
|
inherit legacyPackages;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, dev, lib, inputs, utils, ... }:
|
{ userSelf, dev, lib, inputs, utils, ... }:
|
||||||
|
|
||||||
{ args }:
|
{ args }:
|
||||||
let
|
let
|
||||||
|
@ -161,8 +161,8 @@ let
|
||||||
};
|
};
|
||||||
profiles = mkOption {
|
profiles = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
default = "${self}/profiles";
|
default = "${userSelf}/profiles";
|
||||||
defaultText = "\${self}/profiles";
|
defaultText = "\${userSelf}/profiles";
|
||||||
apply = x: os.mkProfileAttrs (toString x);
|
apply = x: os.mkProfileAttrs (toString x);
|
||||||
description = "path to profiles folder that can be collected into suites";
|
description = "path to profiles folder that can be collected into suites";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ self, dev, lib, inputs, ... }:
|
{ userSelf, dev, lib, inputs, ... }:
|
||||||
|
|
||||||
{ args }:
|
{ args }:
|
||||||
let
|
let
|
||||||
|
@ -22,8 +22,8 @@ let
|
||||||
};
|
};
|
||||||
hosts = mkOption {
|
hosts = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
default = "${self}/hosts";
|
default = "${userSelf}/hosts";
|
||||||
defaultText = "\${self}/hosts";
|
defaultText = "\${userSelf}/hosts";
|
||||||
apply = toString;
|
apply = toString;
|
||||||
description = ''
|
description = ''
|
||||||
Path to directory containing host configurations that will be exported
|
Path to directory containing host configurations that will be exported
|
||||||
|
@ -64,15 +64,15 @@ let
|
||||||
};
|
};
|
||||||
profiles = mkOption {
|
profiles = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
default = "${self}/profiles";
|
default = "${userSelf}/profiles";
|
||||||
defaultText = "\${self}/profiles";
|
defaultText = "\${userSelf}/profiles";
|
||||||
apply = x: os.mkProfileAttrs (toString x);
|
apply = x: os.mkProfileAttrs (toString x);
|
||||||
description = "path to profiles folder that can be collected into suites";
|
description = "path to profiles folder that can be collected into suites";
|
||||||
};
|
};
|
||||||
userProfiles = mkOption {
|
userProfiles = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
default = "${self}/users/profiles";
|
default = "${userSelf}/users/profiles";
|
||||||
defaultText = "\${self}/users/profiles";
|
defaultText = "\${userSelf}/users/profiles";
|
||||||
apply = x: os.mkProfileAttrs (toString x);
|
apply = x: os.mkProfileAttrs (toString x);
|
||||||
description = "path to user profiles folder that can be collected into userSuites";
|
description = "path to user profiles folder that can be collected into userSuites";
|
||||||
};
|
};
|
||||||
|
@ -97,8 +97,8 @@ let
|
||||||
};
|
};
|
||||||
users = mkOption {
|
users = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
default = "${self}/users";
|
default = "${userSelf}/users";
|
||||||
defaultText = "\${self}/users";
|
defaultText = "\${userSelf}/users";
|
||||||
apply = x: os.mkProfileAttrs (toString x);
|
apply = x: os.mkProfileAttrs (toString x);
|
||||||
description = ''
|
description = ''
|
||||||
path to folder containing profiles that define system users
|
path to folder containing profiles that define system users
|
||||||
|
@ -121,9 +121,9 @@ let
|
||||||
{ modules = []; overlays = []; specialArgs = []; userModules = []; userSpecialArgs = []; }
|
{ modules = []; overlays = []; specialArgs = []; userModules = []; userSpecialArgs = []; }
|
||||||
'';
|
'';
|
||||||
# So unneeded extern attributes can safely be deleted
|
# So unneeded extern attributes can safely be deleted
|
||||||
apply = x: defaults // (x { inputs = inputs // self.inputs; });
|
apply = x: defaults // (x { inputs = inputs // userSelf.inputs; });
|
||||||
description = ''
|
description = ''
|
||||||
Function with argument 'inputs' that contains all devos and ''${self}'s inputs.
|
Function with argument 'inputs' that contains all devos and ''${userSelf}'s inputs.
|
||||||
The function should return an attribute set with modules, overlays, and
|
The function should return an attribute set with modules, overlays, and
|
||||||
specialArgs to be included across nixos and home manager configurations.
|
specialArgs to be included across nixos and home manager configurations.
|
||||||
Only attributes that are used should be returned.
|
Only attributes that are used should be returned.
|
||||||
|
@ -131,8 +131,8 @@ let
|
||||||
};
|
};
|
||||||
overlays = mkOption {
|
overlays = mkOption {
|
||||||
type = path;
|
type = path;
|
||||||
default = "${self}/overlays";
|
default = "${userSelf}/overlays";
|
||||||
defaultText = "\${self}/overlays";
|
defaultText = "\${userSelf}/overlays";
|
||||||
apply = x: dev.pathsToImportedAttrs (dev.pathsIn (toString x));
|
apply = x: dev.pathsToImportedAttrs (dev.pathsIn (toString x));
|
||||||
description = ''
|
description = ''
|
||||||
path to folder containing overlays which will be applied to pkgs and exported in
|
path to folder containing overlays which will be applied to pkgs and exported in
|
||||||
|
|
Loading…
Reference in a new issue