From 41a0884acb4196ca0d55a499e71252b032c4dde3 Mon Sep 17 00:00:00 2001 From: DavHau Date: Wed, 4 Oct 2023 11:39:22 +0200 Subject: [PATCH] clan-cli devShell: add editable install --- pkgs/clan-cli/shell.nix | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/pkgs/clan-cli/shell.nix b/pkgs/clan-cli/shell.nix index 6d53c9c98..7ac6e3c3e 100644 --- a/pkgs/clan-cli/shell.nix +++ b/pkgs/clan-cli/shell.nix @@ -1,25 +1,49 @@ -{ nix-unit, clan-cli, ui-assets, system, mkShell, writeScriptBin, openssh }: +{ nix-unit, clan-cli, ui-assets, system, mkShell, writeScriptBin, openssh, ruff, python3 }: let checkScript = writeScriptBin "check" '' nix build .#checks.${system}.{treefmt,clan-pytest} -L "$@" ''; + + pythonWithDeps = python3.withPackages ( + ps: + clan-cli.propagatedBuildInputs + ++ clan-cli.devDependencies + ++ [ + ps.pip + ] + ); in mkShell { packages = [ nix-unit openssh + ruff clan-cli.checkPython ]; shellHook = '' tmp_path=$(realpath ./.direnv) + repo_root=$(realpath .) + mkdir -p "$tmp_path/python/${pythonWithDeps.sitePackages}" + + # Install the package in editable mode + # This allows executing `clan` from within the dev-shell using the current + # version of the code and its dependencies. + ${pythonWithDeps.interpreter} -m pip install \ + --quiet \ + --disable-pip-version-check \ + --no-index \ + --no-build-isolation \ + --prefix "$tmp_path/python" \ + --editable $repo_root + rm -f clan_cli/nixpkgs clan_cli/webui/assets ln -sf ${clan-cli.nixpkgs} clan_cli/nixpkgs ln -sf ${ui-assets} clan_cli/webui/assets - export PATH="$tmp_path/bin:${checkScript}/bin:$PATH" - export PYTHONPATH="$PYTHONPATH:$(pwd)" + export PATH="$tmp_path/python/bin:${checkScript}/bin:$PATH" + export PYTHONPATH="$repo_root:$tmp_path/python/${pythonWithDeps.sitePackages}:" export XDG_DATA_DIRS="$tmp_path/share''${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}" export fish_complete_path="$tmp_path/share/fish/vendor_completions.d''${fish_complete_path:+:$fish_complete_path}"