Skip to content

Commit c422cd6

Browse files
committed
drop flake-utils dependency
1 parent 8f2b394 commit c422cd6

File tree

2 files changed

+65
-87
lines changed

2 files changed

+65
-87
lines changed

flake.lock

Lines changed: 0 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 65 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,72 +4,84 @@
44
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
55
inputs.pyproject-nix.url = "github:nix-community/pyproject.nix";
66
inputs.pyproject-nix.inputs.nixpkgs.follows = "nixpkgs";
7-
inputs.flake-utils.url = "github:numtide/flake-utils";
87

98
outputs =
109
{
1110
self,
1211
nixpkgs,
1312
pyproject-nix,
14-
flake-utils,
1513
}:
16-
flake-utils.lib.eachDefaultSystem (
17-
system:
18-
let
19-
pkgs = nixpkgs.legacyPackages.${system};
20-
pyproject = pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; };
21-
python = pkgs.python3;
22-
pyprojectPackage =
23-
args:
24-
python.pkgs.buildPythonApplication (
25-
args // pyproject.renderers.buildPythonPackage { inherit python; }
26-
);
27-
pyprojectEnv =
28-
extraPackages:
29-
python.withPackages (pyproject.renderers.withPackages { inherit python extraPackages; });
30-
in
31-
{
32-
packages.qbpm = pyprojectPackage {
33-
nativeBuildInputs = [
34-
pkgs.scdoc
35-
pkgs.installShellFiles
36-
];
37-
nativeCheckInputs = [ python.pkgs.pytestCheckHook ];
38-
postInstallCheck = "$out/bin/qbpm --help";
39-
postInstall = ''
40-
_QBPM_COMPLETE=bash_source $out/bin/qbpm > completions/qbpm.bash
41-
_QBPM_COMPLETE=zsh_source $out/bin/qbpm > completions/qbpm.zsh
42-
installShellCompletion completions/qbpm.{bash,zsh,fish}
43-
scdoc < qbpm.1.scd > qbpm.1
44-
installManPage qbpm.1
45-
'';
14+
let
15+
pyproject = pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; };
16+
forAllSystems =
17+
mkOutputs:
18+
nixpkgs.lib.genAttrs [
19+
"aarch64-linux"
20+
"aarch64-darwin"
21+
"x86_64-darwin"
22+
"x86_64-linux"
23+
] (system: mkOutputs nixpkgs.legacyPackages.${system});
24+
in
25+
{
26+
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+
'';
4643

47-
meta = {
48-
homepage = "https://github.com/pvsr/qbpm";
49-
changelog = "https://github.com/pvsr/qbpm/blob/main/CHANGELOG.md";
50-
description = "A profile manager for qutebrowser";
51-
license = pkgs.lib.licenses.gpl3Plus;
52-
};
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+
);
52+
default = self.packages.${pkgs.system}.qbpm;
53+
});
54+
55+
apps = forAllSystems (pkgs: {
56+
qbpm = {
57+
type = "app";
58+
program = pkgs.lib.getExe self.packages.${pkgs.system}.qbpm;
5359
};
54-
packages.default = self.packages.${system}.qbpm;
55-
apps.qbpm = flake-utils.lib.mkApp { drv = self.packages.${system}.qbpm; };
56-
apps.default = self.apps.${system}.qbpm;
60+
default = self.apps.${pkgs.system}.qbpm;
61+
});
5762

58-
devShells.default = pkgs.mkShell {
63+
devShells = forAllSystems (pkgs: {
64+
default = pkgs.mkShell {
5965
packages = [
6066
pkgs.ruff
61-
(pyprojectEnv (
62-
ps: with ps; [
63-
flit
64-
pytest
65-
mypy
66-
pylsp-mypy
67-
]
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+
}
6877
))
6978
];
7079
};
80+
});
7181

72-
formatter = pkgs.nixfmt-tree.override {
82+
formatter = forAllSystems (
83+
pkgs:
84+
pkgs.nixfmt-tree.override {
7385
runtimeInputs = [ pkgs.ruff ];
7486
settings = {
7587
tree-root-file = "flake.nix";
@@ -79,7 +91,7 @@
7991
includes = [ "*.py" ];
8092
};
8193
};
82-
};
83-
}
84-
);
94+
}
95+
);
96+
};
8597
}

0 commit comments

Comments
 (0)