modules: create modules to hold global variables
This commit is contained in:
parent
0e6ec0157b
commit
e98a15db1d
3 changed files with 71 additions and 1 deletions
|
@ -1,3 +1,7 @@
|
|||
{
|
||||
imports = [./theme];
|
||||
imports = [
|
||||
./systemVars.nix
|
||||
./homeVars.nix
|
||||
./theme
|
||||
];
|
||||
}
|
||||
|
|
31
modules/homeVars.nix
Normal file
31
modules/homeVars.nix
Normal file
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkIf mkOption;
|
||||
inherit (lib.types) str;
|
||||
in {
|
||||
options.local.homeVars = {
|
||||
fullName = mkOption {
|
||||
type = str;
|
||||
description = "your full name (used for git commits and user description)";
|
||||
default = null;
|
||||
};
|
||||
email = mkOption {
|
||||
type = str;
|
||||
description = "your email (used for git commits)";
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
config.assertions = mkIf (!config.local.systemVars.isServer) [
|
||||
{
|
||||
assertion = options.local.homeVars.fullName.isDefined;
|
||||
}
|
||||
{
|
||||
assertion = options.local.homeVars.email.isDefined;
|
||||
}
|
||||
];
|
||||
}
|
35
modules/systemVars.nix
Normal file
35
modules/systemVars.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
lib,
|
||||
options,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkOption;
|
||||
inherit (lib.types) bool str;
|
||||
in {
|
||||
options.local.systemVars = {
|
||||
hostName = mkOption {
|
||||
type = str;
|
||||
description = "hostname for the current host";
|
||||
default = null;
|
||||
};
|
||||
username = mkOption {
|
||||
type = str;
|
||||
description = "username for the home directory";
|
||||
default = null;
|
||||
};
|
||||
isServer = mkOption {
|
||||
type = bool;
|
||||
description = "whether or not this host is a server";
|
||||
default = false;
|
||||
};
|
||||
};
|
||||
|
||||
config.assertions = [
|
||||
{
|
||||
assertion = options.local.systemVars.hostName.isDefined;
|
||||
}
|
||||
{
|
||||
assertion = options.local.systemVars.username.isDefined;
|
||||
}
|
||||
];
|
||||
}
|
Loading…
Reference in a new issue