nix-config/home/direnv/default.nix

33 lines
736 B
Nix

{ config, lib, ... }:
let
cfg = config.my.home.direnv;
in
{
options.my.home.direnv = with lib.my; {
enable = mkDisableOption "direnv configuration";
};
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv = {
# A better `use_nix`
enable = true;
};
};
xdg.configFile =
let
libDir = ./lib;
contents = builtins.readDir libDir;
names = lib.attrNames contents;
files = lib.filter (name: contents.${name} == "regular") names;
linkLibFile = name:
lib.nameValuePair
"direnv/lib/${name}"
{ source = libDir + "/${name}"; };
in
lib.my.genAttrs' files linkLibFile;
};
}