dotfiles/modules/programs/direnv.nix

38 lines
870 B
Nix
Raw Normal View History

2022-07-15 13:11:54 +02:00
{ config
, lib
, ...
}:
with lib;
let
cfg = config.my.programs.direnv;
in
{
2022-10-15 20:00:09 +02:00
options.my.programs.direnv.enable = mkEnableOption "direnv";
2022-07-15 13:11:54 +02:00
config = mkIf cfg.enable {
home-manager.users.moritz.programs.direnv = {
enable = true;
nix-direnv.enable = true;
2023-02-28 12:55:06 +01:00
stdlib = ''
layout_poetry() {
if [[ ! -f pyproject.toml ]]; then
log_error 'No pyproject.toml found. Use `poetry new` or `poetry init` to create one first.'
exit 2
fi
local VENV=$(poetry env info --path)
if [[ -z $VENV || ! -d $VENV/bin ]]; then
log_error 'No poetry virtual environment found. Use `poetry install` to create one first.'
exit 2
fi
export VIRTUAL_ENV=$VENV
export POETRY_ACTIVE=1
PATH_add "$VENV/bin"
}
'';
2022-07-15 13:11:54 +02:00
};
};
}