1
Fork 0
mirror of https://github.com/thegeneralist01/config.git synced 2026-03-07 10:59:55 +01:00

config: command-line revamp

This commit is contained in:
TheGeneralist 2026-01-18 22:12:00 +01:00
parent 802a38f61b
commit 3f34891413
Signed by: thegeneralist01
SSH key fingerprint: SHA256:pp9qddbCNmVNoSjevdvQvM5z0DHN7LTa8qBMbcMq/R4
28 changed files with 1141 additions and 335 deletions

View file

@ -0,0 +1,35 @@
{ config, lib, pkgs, ... }: let
inherit (lib) attrNames attrValues const filterAttrs flatten listToAttrs mapAttrs mapAttrsToList readFile replaceStrings;
package = pkgs.nushell;
in {
home-manager.sharedModules = [(homeArgs: let
config' = homeArgs.config;
environmentVariables = let
variablesMap = config'.variablesMap
|> mapAttrsToList (name: value: [
{ name = "\$${name}"; inherit value; }
{ name = "\${${name}}"; inherit value; }
])
|> flatten
|> listToAttrs;
in config.environment.variables
|> mapAttrs (const <| replaceStrings (attrNames variablesMap) (attrValues variablesMap))
|> filterAttrs (name: const <| name != "TERM");
in {
shells."0" = package;
programs.nushell = {
enable = true;
inherit package;
inherit environmentVariables;
shellAliases = config.environment.shellAliases
|> filterAttrs (_: value: value != null);
configFile.text = readFile ./0_nushell.nu;
};
})];
}