diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..13567e97 --- /dev/null +++ b/flake.nix @@ -0,0 +1,54 @@ +{ + description = "Decky development environment"; + # pulls in the python deps from poetry + + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + poetry2nix = { + url = "github:nix-community/poetry2nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + 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 = '' + set -o noclobber + PYTHONPATH=`which python` + FILE=.vscode/settings.json + if [ -f "$FILE" ]; then + echo "$FILE already exists, not writing interpreter path to it." + else + echo "{\"python.defaultInterpreterPath\": \"''${PYTHONPATH}\"}" > "$FILE" + fi + ''; + buildInputs = with pkgs; [ + nodejs_22 + nodePackages.pnpm + poetry + # 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` "$@" '') + ]; + }); + }); +} |
