home: direnv: allow specifying default flake

This commit is contained in:
Bruno BELANYI 2022-04-13 10:04:38 +02:00
parent 9a57ba02b7
commit ed8aae565e
2 changed files with 18 additions and 3 deletions

View file

@ -3,8 +3,18 @@ let
cfg = config.my.home.direnv; cfg = config.my.home.direnv;
in in
{ {
options.my.home.direnv = with lib.my; { options.my.home.direnv = with lib; {
enable = mkDisableOption "direnv configuration"; enable = my.mkDisableOption "direnv configuration";
defaultFlake = mkOption {
type = types.str;
default = "pkgs";
example = "nixpkgs";
description = ''
Which flake from the registry should be used for
<command>use pkgs</command> by default.
'';
};
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
@ -28,5 +38,9 @@ in
{ source = libDir + "/${name}"; }; { source = libDir + "/${name}"; };
in in
lib.my.genAttrs' files linkLibFile; lib.my.genAttrs' files linkLibFile;
home.sessionVariables = {
DIRENV_DEFAULT_FLAKE = cfg.defaultFlake;
};
}; };
} }

View file

@ -7,7 +7,8 @@ use_pkgs() {
return 1 return 1
fi fi
local DEFAULT_FLAKE="pkgs" # Use user-provided default value, or fallback to nixpkgs
local DEFAULT_FLAKE="${DIRENV_DEFAULT_FLAKE:-nixpkgs}"
# Allow changing the default flake through a command line switch # Allow changing the default flake through a command line switch
if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then if [ "$1" = "-f" ] || [ "$1" = "--flake" ]; then