From cb0197fcf3b1451c3a4b2e7c25eee11f1e63c9e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Thu, 3 Aug 2023 13:07:00 +0200 Subject: [PATCH] simplify clan cli build expression also re-expose missing age --- pkgs/clan-cli/default.nix | 138 ++++++++++++++++----------------- pkgs/clan-cli/flake-module.nix | 2 +- 2 files changed, 68 insertions(+), 72 deletions(-) diff --git a/pkgs/clan-cli/default.nix b/pkgs/clan-cli/default.nix index db177b796..62f533426 100644 --- a/pkgs/clan-cli/default.nix +++ b/pkgs/clan-cli/default.nix @@ -1,5 +1,4 @@ -{ pkgs -, lib +{ lib , python3 , ruff , runCommand @@ -8,78 +7,75 @@ , bubblewrap , sops , age +, black +, nix +, mypy +, setuptools , self +, argcomplete +, pytest +, pytest-cov +, pytest-subprocess +, wheel }: let - pyproject = builtins.fromTOML (builtins.readFile ./pyproject.toml); - name = pyproject.project.name; + dependencies = [ argcomplete ]; - src = lib.cleanSource ./.; + testDependencies = [ + pytest + pytest-cov + pytest-subprocess + mypy + ]; - dependencies = lib.attrValues { - inherit (python3.pkgs) - argcomplete - ; - }; - - devDependencies = lib.attrValues { - inherit (pkgs) ruff; - inherit (python3.pkgs) - black - mypy - pytest - pytest-cov - pytest-subprocess - setuptools - wheel - ; - }; - - package = python3.pkgs.buildPythonPackage { - inherit name src; - format = "pyproject"; - nativeBuildInputs = [ - python3.pkgs.setuptools - installShellFiles - ]; - propagatedBuildInputs = - dependencies - ++ [ ]; - passthru.tests = { inherit clan-mypy clan-pytest; }; - passthru.devDependencies = devDependencies; - - makeWrapperArgs = [ - "--set CLAN_FLAKE ${self}" - ]; - - postInstall = '' - installShellCompletion --bash --name clan \ - <(${python3.pkgs.argcomplete}/bin/register-python-argcomplete --shell bash clan) - installShellCompletion --fish --name clan.fish \ - <(${python3.pkgs.argcomplete}/bin/register-python-argcomplete --shell fish clan) - ''; - meta.mainProgram = "clan"; - }; - - checkPython = python3.withPackages (_ps: devDependencies ++ dependencies); - - clan-mypy = runCommand "${name}-mypy" { } '' - cp -r ${src} ./src - chmod +w -R ./src - cd src - ${checkPython}/bin/mypy . - touch $out - ''; - - clan-pytest = runCommand "${name}-tests" - { - nativeBuildInputs = [ zerotierone bubblewrap sops age ]; - } '' - cp -r ${src} ./src - chmod +w -R ./src - cd src - ${checkPython}/bin/python -m pytest ./tests - touch $out - ''; + checkPython = python3.withPackages (_ps: dependencies ++ testDependencies); in -package +python3.pkgs.buildPythonPackage { + name = "clan"; + src = lib.cleanSource ./.; + format = "pyproject"; + nativeBuildInputs = [ + setuptools + installShellFiles + ]; + propagatedBuildInputs = dependencies; + + passthru.tests = { + clan-mypy = runCommand "clan-mypy" { } '' + cp -r ${./.} ./src + chmod +w -R ./src + cd src + ${checkPython}/bin/mypy . + touch $out + ''; + clan-pytest = runCommand "clan-tests" + { + nativeBuildInputs = [ age zerotierone bubblewrap sops nix ]; + } '' + cp -r ${./.} ./src + chmod +w -R ./src + cd src + ${checkPython}/bin/python -m pytest ./tests + touch $out + ''; + }; + + passthru.devDependencies = [ + ruff + black + setuptools + wheel + ] ++ testDependencies; + + makeWrapperArgs = [ + "--set CLAN_FLAKE ${self}" + ]; + + postInstall = '' + installShellCompletion --bash --name clan \ + <(${argcomplete}/bin/register-python-argcomplete --shell bash clan) + installShellCompletion --fish --name clan.fish \ + <(${argcomplete}/bin/register-python-argcomplete --shell fish clan) + ''; + meta.mainProgram = "clan"; +} diff --git a/pkgs/clan-cli/flake-module.nix b/pkgs/clan-cli/flake-module.nix index 706296069..882871531 100644 --- a/pkgs/clan-cli/flake-module.nix +++ b/pkgs/clan-cli/flake-module.nix @@ -5,7 +5,7 @@ inherit (self'.packages) clan; }; packages = { - clan = pkgs.callPackage ./default.nix { + clan = pkgs.python3.pkgs.callPackage ./default.nix { inherit self; zerotierone = self'.packages.zerotierone; };