diff options
author | Andreas Stührk <andy@hammerhartes.de> | 2022-10-18 17:06:05 +0200 |
---|---|---|
committer | Vincent Haupert <mail@vincent-haupert.de> | 2022-11-06 12:58:55 +0100 |
commit | 3582d5c4aa39a1072e2476fc2ef7a242c76ba721 (patch) | |
tree | 8eac7a6afea38d4cde5002e3dc4e6e5821adeadf /pkgs/tools/admin/pulumi-packages | |
parent | 54e896edba273f406c39701b9e464863b1389262 (diff) |
pulumiPackages: add support for Python SDKs
Diffstat (limited to 'pkgs/tools/admin/pulumi-packages')
-rw-r--r-- | pkgs/tools/admin/pulumi-packages/base.nix | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/pkgs/tools/admin/pulumi-packages/base.nix b/pkgs/tools/admin/pulumi-packages/base.nix index c14b6ec32ac5a..001a247379bc3 100644 --- a/pkgs/tools/admin/pulumi-packages/base.nix +++ b/pkgs/tools/admin/pulumi-packages/base.nix @@ -1,5 +1,6 @@ { buildGoModule , fetchFromGitHub +, python3Packages }: let mkBasePackage = @@ -24,6 +25,52 @@ let "-w" ] ++ extraLdflags; } // args); + + mkPythonPackage = + { meta + , pname + , src + , version + , ... + }: python3Packages.callPackage + ({ buildPythonPackage, pythonOlder, parver, pulumi, semver }: + buildPythonPackage rec { + inherit pname meta src version; + format = "setuptools"; + + disabled = pythonOlder "3.7"; + + sourceRoot = "${src.name}/sdk/python"; + + propagatedBuildInputs = [ + parver + pulumi + semver + ]; + + postPatch = '' + sed -i \ + -e 's/^VERSION = .*/VERSION = "${version}"/g' \ + -e 's/^PLUGIN_VERSION = .*/PLUGIN_VERSION = "${version}"/g' \ + setup.py + ''; + + # Auto-generated; upstream does not have any tests. + # Verify that the version substitution works + checkPhase = '' + runHook preCheck + + pip show "${pname}" | grep "Version: ${version}" > /dev/null \ + || (echo "ERROR: Version substitution seems to be broken"; exit 1) + + runHook postCheck + ''; + + pythonImportsCheck = [ + (builtins.replaceStrings [ "-" ] [ "_" ] pname) + ]; + }) + { }; in { owner , repo @@ -72,4 +119,10 @@ mkBasePackage ({ VERSION=v${version} go generate cmd/${cmdRes}/main.go ''; + + passthru.sdks.python = mkPythonPackage { + inherit meta src version; + + pname = repo; + }; } // args) |