rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / tools / networking / octodns / default.nix
blob4eedbaa0deddd2d1e7e1ce88bcc6df5167afe470
1 { lib
2 , buildPythonPackage
3 , fetchFromGitHub
4 , pythonOlder
5 , setuptools
6 , pytestCheckHook
7 , dnspython
8 , fqdn
9 , idna
10 , natsort
11 , python-dateutil
12 , pyyaml
13 , python
14 , runCommand
17 buildPythonPackage rec {
18   pname = "octodns";
19   version = "1.4.0";
20   pyproject = true;
22   disabled = pythonOlder "3.8";
24   src = fetchFromGitHub {
25     owner = "octodns";
26     repo = "octodns";
27     rev = "v${version}";
28     hash = "sha256-l4JGodbUmFxHFeEaxgClEozHcbyYP0F2yj5gDqV88IA=";
29   };
31   nativeBuildInputs = [
32     setuptools
33   ];
35   propagatedBuildInputs = [
36     dnspython
37     fqdn
38     idna
39     natsort
40     python-dateutil
41     pyyaml
42   ];
44   nativeCheckInputs = [
45     pytestCheckHook
46   ];
48   pythonImportsCheck = [ "octodns" ];
50   passthru.withProviders = ps: let
51     pyEnv = python.withPackages ps;
52   in runCommand "octodns-with-providers" { } ''
53     mkdir -p $out/bin
54     ln -st $out/bin ${pyEnv}/bin/octodns-*
55   '';
57   meta = with lib; {
58     description = "Tools for managing DNS across multiple providers";
59     homepage = "https://github.com/octodns/octodns";
60     changelog = "https://github.com/octodns/octodns/blob/${src.rev}/CHANGELOG.md";
61     license = licenses.mit;
62     maintainers = with maintainers; [ janik ];
63   };