Commit 55e531a5 authored by Ivan Trubach's avatar Ivan Trubach
Browse files

pulumi: move withPackages implementation to separate file

Also do not set LD_LIBRARY_PATH for wrapper. Pulumi and its plugins are
self-contained executables, so it does not make sense to set it.
parent 7ebe5f06
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -7,8 +7,7 @@
  git,
  buildPackages,
  # passthru
  runCommand,
  makeWrapper,
  callPackage,
  testers,
  pulumi,
  pulumiPackages,
@@ -118,18 +117,7 @@ buildGoModule rec {

  passthru = {
    pkgs = pulumiPackages;
    withPackages =
      f:
      runCommand "${pulumi.name}-with-packages"
        {
          nativeBuildInputs = [ makeWrapper ];
        }
        ''
          mkdir -p $out/bin
          makeWrapper ${pulumi}/bin/pulumi $out/bin/pulumi \
            --suffix PATH : ${lib.makeBinPath (f pulumiPackages)} \
            --set LD_LIBRARY_PATH "${lib.getLib stdenv.cc.cc}/lib"
        '';
    withPackages = callPackage ./with-packages.nix { };
    tests = {
      version = testers.testVersion {
        package = pulumi;
+35 −0
Original line number Diff line number Diff line
{
  lib,
  runCommand,
  pulumi,
  pulumiPackages,
  makeBinaryWrapper,
}:
f:
# Note that Pulumi prints a warning for “ambient” plugins (i.e. from PATH). E.g.
#   warning: using pulumi-resource-* from $PATH at /nix/store/*
# See also https://github.com/pulumi/pulumi/issues/14525
#
# We can install packages alongside pulumi executable, but that would only
# suppress the warning for packages that are bundled with the official
# distribution. Refer to the implementation of workspace.IsPluginBundled:
# https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3@v3.150.0/go/common/workspace#IsPluginBundled
# https://github.com/pulumi/pulumi/blob/v3.150.0/sdk/go/common/workspace/plugins.go#L2202-L2210
runCommand "pulumi-with-packages"
  {
    inherit pulumi;
    makeWrapperArgs = [
      "--suffix"
      "PATH"
      ":"
      (lib.makeBinPath (f pulumiPackages))
    ];
    __structuredAttrs = true;
    nativeBuildInputs = [ makeBinaryWrapper ];
    meta.mainProgram = "pulumi";
  }
  ''
    mkdir -p "$out/bin"
    ln -s -t "$out" "$pulumi/share"
    makeWrapper "$pulumi/bin/pulumi" "$out/bin/pulumi" "''${makeWrapperArgs[@]}"
  ''