treewide: null package support (#6582)

Can generate the config without installing application through home-manager. Helpful when a package is broken (or not provided) on a specific platform through nixpkgs and needs to be installed through other means but you still can benefit from the declarative configuration.
This commit is contained in:
Austin Horstman
2025-03-07 18:17:52 -06:00
committed by GitHub
parent 6c2b79403e
commit d2c014e1c7
83 changed files with 269 additions and 222 deletions

View File

@@ -29,7 +29,10 @@ in {
programs.bash = {
enable = mkEnableOption "GNU Bourne-Again SHell";
package = mkPackageOption pkgs "bash" { default = "bashInteractive"; };
package = mkPackageOption pkgs "bash" {
nullable = true;
default = "bashInteractive";
};
enableCompletion = mkOption {
type = types.bool;
@@ -195,7 +198,7 @@ in {
}) ++ optional (cfg.historyFile != null)
''mkdir -p "$(dirname "$HISTFILE")"''));
in mkIf cfg.enable {
home.packages = [ cfg.package ];
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
home.file.".bash_profile".source = writeBashScript "bash_profile" ''
# include .profile if it exists