diff options
author | Vincent Haupert <mail@vincent-haupert.de> | 2022-10-18 14:39:31 +0200 |
---|---|---|
committer | Vincent Haupert <mail@vincent-haupert.de> | 2022-11-06 12:58:55 +0100 |
commit | 0412ead84e62ee28b58d634a0958d4eab5067124 (patch) | |
tree | ad2b60d0de90c218e30b1589c401c1b3992137c9 /pkgs/tools/admin/pulumi-packages | |
parent | 35657c42623f858deff6f3a9990224e47a0884a0 (diff) |
pulumiPackages: add base package derivation
Diffstat (limited to 'pkgs/tools/admin/pulumi-packages')
-rw-r--r-- | pkgs/tools/admin/pulumi-packages/base.nix | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/tools/admin/pulumi-packages/base.nix b/pkgs/tools/admin/pulumi-packages/base.nix new file mode 100644 index 0000000000000..c14b6ec32ac5a --- /dev/null +++ b/pkgs/tools/admin/pulumi-packages/base.nix @@ -0,0 +1,75 @@ +{ buildGoModule +, fetchFromGitHub +}: +let + mkBasePackage = + { pname + , src + , version + , vendorHash + , cmd + , extraLdflags + , ... + }@args: buildGoModule (rec { + inherit pname src vendorHash version; + + sourceRoot = "${src.name}/provider"; + + subPackages = [ "cmd/${cmd}" ]; + + doCheck = false; + + ldflags = [ + "-s" + "-w" + ] ++ extraLdflags; + } // args); +in +{ owner +, repo +, rev +, version +, hash +, vendorHash +, cmdGen +, cmdRes +, extraLdflags +, meta +, fetchSubmodules ? false +, ... +}@args: +let + src = fetchFromGitHub { + name = "source-${repo}-${rev}"; + inherit owner repo rev hash fetchSubmodules; + }; + + pulumi-gen = mkBasePackage rec { + inherit src version vendorHash extraLdflags; + + cmd = cmdGen; + pname = cmdGen; + }; +in +mkBasePackage ({ + inherit meta src version vendorHash extraLdflags; + + pname = repo; + + nativeBuildInputs = [ + pulumi-gen + ]; + + cmd = cmdRes; + + postConfigure = '' + pushd .. + + chmod +w sdk/ + ${cmdGen} schema + + popd + + VERSION=v${version} go generate cmd/${cmdRes}/main.go + ''; +} // args) |