nixos/shells-environment: add environment.shell.enable option
This commit is contained in:
@@ -36,6 +36,24 @@ in
|
|||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
|
environment.shell.enable = lib.mkEnableOption "" // {
|
||||||
|
default = true;
|
||||||
|
internal = true;
|
||||||
|
description = ''
|
||||||
|
Whether to enable the shell environment.
|
||||||
|
|
||||||
|
This does NOT necessarily disable all shells on your system. Instead it
|
||||||
|
just disables the shell environment that configures user shells (i.e.
|
||||||
|
those in `environment.shells`).
|
||||||
|
|
||||||
|
System services might still depend on and use shells even if this
|
||||||
|
option is set to false.
|
||||||
|
|
||||||
|
Only set this option if you're sure that you can recover from potential
|
||||||
|
issues.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
environment.variables = lib.mkOption {
|
environment.variables = lib.mkOption {
|
||||||
default = { };
|
default = { };
|
||||||
example = {
|
example = {
|
||||||
@@ -175,10 +193,10 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.binsh = lib.mkOption {
|
environment.binsh = lib.mkOption {
|
||||||
default = "${config.system.build.binsh}/bin/sh";
|
default = null;
|
||||||
defaultText = lib.literalExpression ''"''${config.system.build.binsh}/bin/sh"'';
|
defaultText = lib.literalExpression ''"''${pkgs.bashInteractive}/bin/sh"'';
|
||||||
example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
example = lib.literalExpression ''"''${pkgs.dash}/bin/dash"'';
|
||||||
type = lib.types.path;
|
type = lib.types.nullOr lib.types.path;
|
||||||
visible = false;
|
visible = false;
|
||||||
description = ''
|
description = ''
|
||||||
The shell executable that is linked system-wide to
|
The shell executable that is linked system-wide to
|
||||||
@@ -201,9 +219,10 @@ in
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = lib.mkIf cfg.shell.enable {
|
||||||
|
|
||||||
system.build.binsh = pkgs.bashInteractive;
|
# Set this here so its enabled only when shell support is enabled
|
||||||
|
environment.binsh = lib.mkDefault "${pkgs.bashInteractive}/bin/sh";
|
||||||
|
|
||||||
# Set session variables in the shell as well. This is usually
|
# Set session variables in the shell as well. This is usually
|
||||||
# unnecessary, but it allows changes to session variables to take
|
# unnecessary, but it allows changes to session variables to take
|
||||||
|
|||||||
Reference in New Issue
Block a user