mirror of
https://github.com/foo-dogsquared/nix-module-wrapper-manager-fds.git
synced 2025-02-07 06:19:02 +00:00
wrapper-manager-fds/modules: restructure env option
Now we have solved the problem of requiring separate options by consolidating them together. This shouldn't be that breaking of a change.
This commit is contained in:
parent
12686f3bad
commit
dd389a65ec
@ -7,6 +7,32 @@ let
|
|||||||
let
|
let
|
||||||
toStringType = with lib.types; coercedTo anything (x: builtins.toString x) str;
|
toStringType = with lib.types; coercedTo anything (x: builtins.toString x) str;
|
||||||
flagType = with lib.types; listOf toStringType;
|
flagType = with lib.types; listOf toStringType;
|
||||||
|
|
||||||
|
envSubmodule = { config, lib, name, ... }: {
|
||||||
|
options = {
|
||||||
|
action = lib.mkOption {
|
||||||
|
type = lib.types.enum [ "unset" "set" "set-default" ];
|
||||||
|
description = ''
|
||||||
|
Sets the appropriate action for the environment variable.
|
||||||
|
|
||||||
|
* `unset`... unsets the given variable.
|
||||||
|
* `set-default` only sets the variable with the given value if
|
||||||
|
not already set.
|
||||||
|
* `set` forcibly sets the variable with given value.
|
||||||
|
'';
|
||||||
|
default = "set";
|
||||||
|
example = "unset";
|
||||||
|
};
|
||||||
|
|
||||||
|
value = lib.mkOption {
|
||||||
|
type = toStringType;
|
||||||
|
description = ''
|
||||||
|
The value of the variable that is holding.
|
||||||
|
'';
|
||||||
|
example = "HELLO THERE";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@ -56,9 +82,10 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
env = lib.mkOption {
|
env = lib.mkOption {
|
||||||
type = with lib.types; attrsOf toStringType;
|
type = with lib.types; attrsOf (submodule envSubmodule);
|
||||||
description = ''
|
description = ''
|
||||||
A set of environment variables to be declared in the wrapper script.
|
A set of environment variables to be declared in the wrapper
|
||||||
|
script.
|
||||||
'';
|
'';
|
||||||
default = { };
|
default = { };
|
||||||
example = {
|
example = {
|
||||||
@ -67,15 +94,6 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
unset = lib.mkOption {
|
|
||||||
type = with lib.types; listOf nonEmptyStr;
|
|
||||||
description = ''
|
|
||||||
A list of environment variables to be unset into the wrapper script.
|
|
||||||
'';
|
|
||||||
default = [ ];
|
|
||||||
example = [ "NO_COLOR" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
pathAdd = lib.mkOption {
|
pathAdd = lib.mkOption {
|
||||||
type = with lib.types; listOf path;
|
type = with lib.types; listOf path;
|
||||||
description = ''
|
description = ''
|
||||||
@ -121,8 +139,12 @@ let
|
|||||||
makeWrapperArgs = [
|
makeWrapperArgs = [
|
||||||
"--argv0" config.arg0
|
"--argv0" config.arg0
|
||||||
]
|
]
|
||||||
++ (builtins.map (v: "--unset ${lib.escapeShellArg v}") config.unset)
|
++ (lib.mapAttrsToList
|
||||||
++ (lib.mapAttrsToList (n: v: "--set ${lib.escapeShellArg n} ${lib.escapeShellArg v}") config.env)
|
(n: v:
|
||||||
|
if v.action == "unset"
|
||||||
|
then "--${v.action} ${lib.escapeShellArg n}"
|
||||||
|
else "--${v.action} ${lib.escapeShellArg n} ${lib.escapeShellArg v.value}")
|
||||||
|
config.env)
|
||||||
++ (builtins.map (v: "--add-flags ${lib.escapeShellArg v}") config.prependArgs)
|
++ (builtins.map (v: "--add-flags ${lib.escapeShellArg v}") config.prependArgs)
|
||||||
++ (builtins.map (v: "--append-flags ${lib.escapeShellArg v}") config.appendArgs)
|
++ (builtins.map (v: "--append-flags ${lib.escapeShellArg v}") config.appendArgs)
|
||||||
++ (lib.optionals (!envConfig.build.isBinary && config.preScript != "") (
|
++ (lib.optionals (!envConfig.build.isBinary && config.preScript != "") (
|
||||||
@ -134,7 +156,7 @@ let
|
|||||||
}
|
}
|
||||||
|
|
||||||
(lib.mkIf (config.pathAdd != [ ]) {
|
(lib.mkIf (config.pathAdd != [ ]) {
|
||||||
env.PATH = lib.concatStringsSep ":" config.pathAdd;
|
env.PATH.value = lib.concatStringsSep ":" config.pathAdd;
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ in
|
|||||||
options.locale = localeModuleFactory { isGlobal = false; };
|
options.locale = localeModuleFactory { isGlobal = false; };
|
||||||
|
|
||||||
config = lib.mkIf submoduleCfg.enable {
|
config = lib.mkIf submoduleCfg.enable {
|
||||||
env.LOCALE_ARCHIVE = "${submoduleCfg.package}/lib/locale/locale-archive";
|
env.LOCALE_ARCHIVE.value = "${submoduleCfg.package}/lib/locale/locale-archive";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
@ -52,11 +52,11 @@ in
|
|||||||
}
|
}
|
||||||
|
|
||||||
(lib.mkIf (config.xdg.configDirs != [ ]) {
|
(lib.mkIf (config.xdg.configDirs != [ ]) {
|
||||||
env.XDG_CONFIG_DIRS = lib.concatStringsSep ":" config.xdg.configDirs;
|
env.XDG_CONFIG_DIRS.value = lib.concatStringsSep ":" config.xdg.configDirs;
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.mkIf (config.xdg.dataDirs != [ ]) {
|
(lib.mkIf (config.xdg.dataDirs != [ ]) {
|
||||||
env.XDG_DATA_DIRS = lib.concatStringsSep ":" config.xdg.dataDirs;
|
env.XDG_DATA_DIRS.value = lib.concatStringsSep ":" config.xdg.dataDirs;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
wrappers.fastfetch = {
|
wrappers.fastfetch = {
|
||||||
arg0 = lib.getExe' pkgs.fastfetch "fastfetch";
|
arg0 = lib.getExe' pkgs.fastfetch "fastfetch";
|
||||||
appendArgs = [ "--logo" "Guix" ];
|
appendArgs = [ "--logo" "Guix" ];
|
||||||
env.NO_COLOR = "1";
|
env.NO_COLOR.value = "1";
|
||||||
xdg.desktopEntry.enable = true;
|
xdg.desktopEntry.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user