diff options
author | Florian Klink <flokli@flokli.de> | 2020-07-22 12:53:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-22 12:53:07 +0200 |
commit | 3d50d643f9099dc967e69073c6aa259440d40cd4 (patch) | |
tree | 49289913140f5eacb1803e34c12ff660d0283b1b /pkgs/development | |
parent | 3112aa3e2fa5029b9b5e659bbcd9613ada6b999f (diff) | |
parent | 9d86dea4174ad6c1ef907582d0919533c65eb7ed (diff) |
Merge pull request #92786 from flokli/certbot-with-plugins
certbot: add certbot.withPlugins
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/python-modules/certbot/default.nix | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix new file mode 100644 index 0000000000000..79e5c3288b7fd --- /dev/null +++ b/pkgs/development/python-modules/certbot/default.nix @@ -0,0 +1,75 @@ +{ lib +, buildPythonPackage +, python, runCommand +, fetchFromGitHub +, ConfigArgParse, acme, configobj, cryptography, distro, josepy, parsedatetime, pyRFC3339, pyopenssl, pytz, requests, six, zope_component, zope_interface +, dialog, mock, gnureadline +, pytest_xdist, pytest, pytestCheckHook, dateutil +}: + +buildPythonPackage rec { + pname = "certbot"; + version = "1.6.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "1y0m5qm853i6pcpb2mrf8kjkr9wr80mdrx1qmck38ayvr2v2p5lc"; + }; + + sourceRoot = "source/${pname}"; + + propagatedBuildInputs = [ + ConfigArgParse + acme + configobj + cryptography + distro + josepy + parsedatetime + pyRFC3339 + pyopenssl + pytz + requests + six + zope_component + zope_interface + ]; + + buildInputs = [ dialog mock gnureadline ]; + + checkInputs = [ + dateutil + pytest + pytestCheckHook + pytest_xdist + ]; + + pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ]; + + doCheck = true; + + makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ]; + + # certbot.withPlugins has a similar calling convention as python*.withPackages + # it gets invoked with a lambda, and invokes that lambda with the python package set matching certbot's: + # certbot.withPlugins (cp: [ cp.certbot-dns-foo ]) + passthru.withPlugins = f: let + pythonEnv = python.withPackages f; + + in runCommand "certbot-with-plugins" { + } '' + mkdir -p $out/bin + cd $out/bin + ln -s ${pythonEnv}/bin/certbot + ''; + + meta = with lib; { + homepage = src.meta.homepage; + description = "ACME client that can obtain certs and extensibly update server configurations"; + platforms = platforms.unix; + maintainers = with maintainers; [ domenkozar ]; + license = with licenses; [ asl20 ]; + }; +} |