|
13 | 13 | }: |
14 | 14 | let |
15 | 15 | pyproject = pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; }; |
| 16 | + pyprojectPackage = |
| 17 | + python: args: |
| 18 | + python.pkgs.buildPythonApplication ( |
| 19 | + args // pyproject.renderers.buildPythonPackage { inherit python; } |
| 20 | + ); |
| 21 | + pyprojectEnv = |
| 22 | + python: extraPackages: |
| 23 | + python.withPackages (pyproject.renderers.withPackages { inherit python extraPackages; }); |
16 | 24 | forAllSystems = |
17 | 25 | mkOutputs: |
18 | 26 | nixpkgs.lib.genAttrs [ |
|
24 | 32 | in |
25 | 33 | { |
26 | 34 | packages = forAllSystems (pkgs: { |
27 | | - qbpm = pkgs.python3.pkgs.buildPythonApplication ( |
28 | | - pyproject.renderers.buildPythonPackage { python = pkgs.python3; } |
29 | | - // { |
30 | | - nativeBuildInputs = [ |
31 | | - pkgs.scdoc |
32 | | - pkgs.installShellFiles |
33 | | - ]; |
34 | | - nativeCheckInputs = [ pkgs.python3.pkgs.pytestCheckHook ]; |
35 | | - postInstallCheck = "$out/bin/qbpm --help"; |
36 | | - postInstall = '' |
37 | | - _QBPM_COMPLETE=bash_source $out/bin/qbpm > completions/qbpm.bash |
38 | | - _QBPM_COMPLETE=zsh_source $out/bin/qbpm > completions/qbpm.zsh |
39 | | - installShellCompletion completions/qbpm.{bash,zsh,fish} |
40 | | - scdoc < qbpm.1.scd > qbpm.1 |
41 | | - installManPage qbpm.1 |
42 | | - ''; |
| 35 | + qbpm = pyprojectPackage pkgs.python3 { |
| 36 | + nativeBuildInputs = [ |
| 37 | + pkgs.scdoc |
| 38 | + pkgs.installShellFiles |
| 39 | + ]; |
| 40 | + nativeCheckInputs = [ pkgs.python3.pkgs.pytestCheckHook ]; |
| 41 | + postInstallCheck = "$out/bin/qbpm --help"; |
| 42 | + postInstall = '' |
| 43 | + _QBPM_COMPLETE=bash_source $out/bin/qbpm > completions/qbpm.bash |
| 44 | + _QBPM_COMPLETE=zsh_source $out/bin/qbpm > completions/qbpm.zsh |
| 45 | + installShellCompletion completions/qbpm.{bash,zsh,fish} |
| 46 | + scdoc < qbpm.1.scd > qbpm.1 |
| 47 | + installManPage qbpm.1 |
| 48 | + ''; |
43 | 49 |
|
44 | | - meta = { |
45 | | - homepage = "https://github.com/pvsr/qbpm"; |
46 | | - changelog = "https://github.com/pvsr/qbpm/blob/main/CHANGELOG.md"; |
47 | | - description = "A profile manager for qutebrowser"; |
48 | | - license = pkgs.lib.licenses.gpl3Plus; |
49 | | - }; |
50 | | - } |
51 | | - ); |
| 50 | + meta = { |
| 51 | + homepage = "https://github.com/pvsr/qbpm"; |
| 52 | + changelog = "https://github.com/pvsr/qbpm/blob/main/CHANGELOG.md"; |
| 53 | + description = "A profile manager for qutebrowser"; |
| 54 | + license = pkgs.lib.licenses.gpl3Plus; |
| 55 | + }; |
| 56 | + }; |
52 | 57 | default = self.packages.${pkgs.system}.qbpm; |
53 | 58 | }); |
54 | 59 |
|
|
64 | 69 | default = pkgs.mkShell { |
65 | 70 | packages = [ |
66 | 71 | pkgs.ruff |
67 | | - (pkgs.python3.withPackages ( |
68 | | - pyproject.renderers.withPackages { |
69 | | - python = pkgs.python3; |
70 | | - extraPackages = ps: [ |
71 | | - ps.flit |
72 | | - ps.pytest |
73 | | - ps.mypy |
74 | | - ps.pylsp-mypy |
75 | | - ]; |
76 | | - } |
77 | | - )) |
| 72 | + (pyprojectEnv pkgs.python3 (ps: [ |
| 73 | + ps.flit |
| 74 | + ps.pytest |
| 75 | + ps.mypy |
| 76 | + ps.pylsp-mypy |
| 77 | + ])) |
78 | 78 | ]; |
79 | 79 | }; |
80 | 80 | }); |
|
0 commit comments