home-assistant: 2025.1.1 -> 2025.1.2 (#372513)
[NixPkgs.git] / pkgs / tools / networking / octodns / default.nix
blob935b9e884057aa42155174eb0b2f11f161e550ac
2   lib,
3   buildPythonPackage,
4   dnspython,
5   fetchFromGitHub,
6   fqdn,
7   idna,
8   natsort,
9   pytestCheckHook,
10   python-dateutil,
11   python3,
12   pythonOlder,
13   pyyaml,
14   runCommand,
15   setuptools,
18 buildPythonPackage rec {
19   pname = "octodns";
20   version = "1.10.0";
21   pyproject = true;
23   disabled = pythonOlder "3.8";
25   src = fetchFromGitHub {
26     owner = "octodns";
27     repo = "octodns";
28     tag = "v${version}";
29     hash = "sha256-L3c4lYt/fgMctJFArc1XlR+hvpz10kcBcYYXajnNQr0=";
30   };
32   build-system = [
33     setuptools
34   ];
36   dependencies = [
37     dnspython
38     fqdn
39     idna
40     natsort
41     python-dateutil
42     pyyaml
43   ];
45   nativeCheckInputs = [
46     pytestCheckHook
47   ];
49   pythonImportsCheck = [ "octodns" ];
51   passthru.withProviders =
52     ps:
53     let
54       pyEnv = python3.withPackages ps;
55     in
56     runCommand "octodns-with-providers" { } ''
57       mkdir -p $out/bin
58       ln -st $out/bin ${pyEnv}/bin/octodns-*
59     '';
61   meta = with lib; {
62     description = "Tools for managing DNS across multiple providers";
63     homepage = "https://github.com/octodns/octodns";
64     changelog = "https://github.com/octodns/octodns/blob/${src.rev}/CHANGELOG.md";
65     license = licenses.mit;
66     maintainers = [ maintainers.anthonyroussel ];
67   };