From 0c727d64d29a4d1fb4f19ce62e7455abce1bcb17 Mon Sep 17 00:00:00 2001 From: Adrian Covaci <6562353+acovaci@users.noreply.github.com> Date: Fri, 17 Jan 2025 21:52:50 +0000 Subject: chore(flake): Add setuptools in order to build on a minimal Nix system (#741) --- flake.nix | 88 ++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/flake.nix b/flake.nix index fb8e6ee7..b0b9b4a4 100644 --- a/flake.nix +++ b/flake.nix @@ -11,45 +11,57 @@ }; }; - outputs = { self, nixpkgs, flake-utils, poetry2nix }: - flake-utils.lib.eachDefaultSystem (system: + outputs = + { + self, + nixpkgs, + flake-utils, + poetry2nix, + }: + flake-utils.lib.eachDefaultSystem ( + system: let pkgs = import nixpkgs { inherit system; }; p2n = (poetry2nix.lib.mkPoetry2Nix { inherit pkgs; }); - in { - devShells.default = (p2n.mkPoetryEnv { - projectDir = self + "/backend"; - # pyinstaller fails to compile so precompiled it is - overrides = p2n.overrides.withDefaults (final: prev: { - pyinstaller = prev.pyinstaller.override { preferWheel = true; }; - pyright = null; - }); - }).env.overrideAttrs (oldAttrs: { - shellHook = '' - PYTHONPATH=`which python` - FILE=.vscode/settings.json - if [ -f "$FILE" ]; then - jq --arg pythonpath "$PYTHONPATH" '.["python.defaultInterpreterPath"] = $pythonpath' $FILE > "$FILE.tmp" && mv "$FILE.tmp" "$FILE" - else - echo "{\"python.defaultInterpreterPath\": \"$PYTHONPATH\"}" > "$FILE" - fi - ''; - UV_USE_IO_URING = 0; # work around node#48444 - buildInputs = with pkgs; [ - nodejs_22 - nodePackages.pnpm - poetry - jq - # fixes local pyright not being able to see the pythonpath properly. - (pkgs.writeShellScriptBin "pyright" '' - ${pkgs.pyright}/bin/pyright --pythonpath `which python3` "$@" '') - (pkgs.writeShellScriptBin "pyright-langserver" '' - ${pkgs.pyright}/bin/pyright-langserver --pythonpath `which python3` "$@" '') - (pkgs.writeShellScriptBin "pyright-python" '' - ${pkgs.pyright}/bin/pyright-python --pythonpath `which python3` "$@" '') - (pkgs.writeShellScriptBin "pyright-python-langserver" '' - ${pkgs.pyright}/bin/pyright-python-langserver --pythonpath `which python3` "$@" '') - ]; - }); - }); + in + { + devShells.default = + (p2n.mkPoetryEnv { + projectDir = self + "/backend"; + # pyinstaller fails to compile so precompiled it is + overrides = p2n.overrides.withDefaults ( + final: prev: { + pyinstaller = prev.pyinstaller.override { preferWheel = true; }; + pyright = null; + } + ); + }).env.overrideAttrs + (oldAttrs: { + shellHook = '' + PYTHONPATH=`which python` + FILE=.vscode/settings.json + if [ -f "$FILE" ]; then + jq --arg pythonpath "$PYTHONPATH" '.["python.defaultInterpreterPath"] = $pythonpath' $FILE > "$FILE.tmp" && mv "$FILE.tmp" "$FILE" + else + echo "{\"python.defaultInterpreterPath\": \"$PYTHONPATH\"}" > "$FILE" + fi + ''; + UV_USE_IO_URING = 0; # work around node#48444 + nativeBuildInputs = with pkgs; [ + python311Packages.setuptools + ]; + buildInputs = with pkgs; [ + nodejs_22 + nodePackages.pnpm + poetry + jq + # fixes local pyright not being able to see the pythonpath properly. + (pkgs.writeShellScriptBin "pyright" ''${pkgs.pyright}/bin/pyright --pythonpath `which python3` "$@" '') + (pkgs.writeShellScriptBin "pyright-langserver" ''${pkgs.pyright}/bin/pyright-langserver --pythonpath `which python3` "$@" '') + (pkgs.writeShellScriptBin "pyright-python" ''${pkgs.pyright}/bin/pyright-python --pythonpath `which python3` "$@" '') + (pkgs.writeShellScriptBin "pyright-python-langserver" ''${pkgs.pyright}/bin/pyright-python-langserver --pythonpath `which python3` "$@" '') + ]; + }); + } + ); } -- cgit v1.2.3