39 lines
727 B
Nix
39 lines
727 B
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
cfg = config.modules.shell;
|
|
zshCfg = config.modules.zsh;
|
|
in
|
|
{
|
|
options.modules.shell = {
|
|
defaultShell = mkOption {
|
|
type = types.enum [
|
|
"bash"
|
|
"zsh"
|
|
];
|
|
default = "zsh";
|
|
description = ''
|
|
The default shell to use for your user account.
|
|
'';
|
|
};
|
|
};
|
|
|
|
config.assertions =
|
|
[ ]
|
|
++ (
|
|
if cfg.defaultShell == "zsh" then
|
|
[
|
|
{
|
|
assertion = zshCfg.enable;
|
|
message = "You have selected zsh as the default shell, but you haven't enabled it in your configuration.\n\nPlease enable it by adding `modules.zsh.enable = true`.";
|
|
}
|
|
]
|
|
else
|
|
[ ]
|
|
);
|
|
}
|