From 11156f282c97da75d69f568ce92c8b80f6553c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 28 Feb 2023 12:55:06 +0100 Subject: [PATCH] direnv: add poetry layout for direnv --- modules/programs/direnv.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/programs/direnv.nix b/modules/programs/direnv.nix index 1235326..92beef1 100644 --- a/modules/programs/direnv.nix +++ b/modules/programs/direnv.nix @@ -15,6 +15,24 @@ in home-manager.users.moritz.programs.direnv = { enable = true; nix-direnv.enable = true; + 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" + } + ''; }; }; }