From 0412ead84e62ee28b58d634a0958d4eab5067124 Mon Sep 17 00:00:00 2001 From: Vincent Haupert Date: Tue, 18 Oct 2022 14:39:31 +0200 Subject: pulumiPackages: add base package derivation --- pkgs/tools/admin/pulumi-packages/base.nix | 75 +++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 pkgs/tools/admin/pulumi-packages/base.nix (limited to 'pkgs/tools/admin/pulumi-packages') 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) -- cgit 1.4.1