2020-12-01 12:31:29 +03:00
|
|
|
{ pkgs ? import <nixpkgs> {},
|
|
|
|
src ? ./.
|
|
|
|
}:
|
2020-03-16 13:06:32 +03:00
|
|
|
|
|
|
|
|
|
|
|
with pkgs;
|
|
|
|
python3.pkgs.buildPythonApplication rec {
|
|
|
|
name = "nix-update";
|
2020-12-01 12:31:29 +03:00
|
|
|
inherit src;
|
2022-02-16 23:07:54 +03:00
|
|
|
buildInputs = [ makeWrapper ];
|
2020-11-18 11:23:07 +03:00
|
|
|
checkInputs = [
|
2020-12-01 11:30:17 +03:00
|
|
|
python3.pkgs.pytest
|
|
|
|
python3.pkgs.black
|
2022-11-21 00:09:48 +03:00
|
|
|
ruff
|
2020-12-01 11:30:17 +03:00
|
|
|
glibcLocales
|
|
|
|
mypy
|
2020-11-18 11:23:07 +03:00
|
|
|
# technically not a test input, but we need it for development in PATH
|
2022-03-10 13:32:58 +03:00
|
|
|
pkgs.nixVersions.stable or nix_2_4
|
2020-11-18 11:23:07 +03:00
|
|
|
];
|
2020-03-16 13:06:32 +03:00
|
|
|
checkPhase = ''
|
|
|
|
echo -e "\x1b[32m## run black\x1b[0m"
|
2022-11-15 02:38:43 +03:00
|
|
|
LC_ALL=en_US.utf-8 black --check . bin/nix-update
|
2022-11-21 00:09:48 +03:00
|
|
|
echo -e "\x1b[32m## run ruff\x1b[0m"
|
2022-12-11 21:55:52 +03:00
|
|
|
ruff . bin/nix-update
|
2020-03-16 13:06:32 +03:00
|
|
|
echo -e "\x1b[32m## run mypy\x1b[0m"
|
2021-12-13 16:40:59 +03:00
|
|
|
mypy --no-warn-unused-ignores --strict nix_update tests
|
2020-03-16 13:06:32 +03:00
|
|
|
'';
|
|
|
|
makeWrapperArgs = [
|
2022-11-14 17:29:02 +03:00
|
|
|
"--prefix PATH" ":" (lib.makeBinPath [ pkgs.nixVersions.stable or nix_2_4 nixpkgs-fmt nixpkgs-review ])
|
2020-03-16 13:06:32 +03:00
|
|
|
];
|
|
|
|
shellHook = ''
|
|
|
|
# workaround because `python setup.py develop` breaks for me
|
|
|
|
'';
|
|
|
|
|
|
|
|
passthru.env = buildEnv { inherit name; paths = buildInputs ++ checkInputs; };
|
|
|
|
}
|