Commit b18d379a authored by zowoq's avatar zowoq
Browse files

terraform-providers: add homepage that can be used as provider-source-address

also proper urls in the json
parent 70f59224
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -24,10 +24,13 @@ let
     , proxyVendor ? false
     , mkProviderFetcher ? fetchFromGitHub
     , mkProviderGoModule ? buildGoModule
       # Looks like "registry.terraform.io/vancluever/acme"
     , provider-source-address
       # "https://registry.terraform.io/providers/vancluever/acme"
     , homepage ? ""
       # "registry.terraform.io/vancluever/acme"
     , provider-source-address ? lib.replaceStrings [ "https://registry" ".io/providers" ] [ "registry" ".io" ] homepage
     , ...
     }@attrs:
      assert lib.stringLength provider-source-address > 0;
      mkProviderGoModule {
        pname = repo;
        inherit vendorHash version deleteVendor proxyVendor;
@@ -42,6 +45,10 @@ let
          inherit owner repo rev hash;
        };

        meta = {
          inherit homepage;
        };

        # Move the provider to libexec
        postInstall = ''
          dir=$out/libexec/terraform-providers/${provider-source-address}/${version}/''${GOOS}_''${GOARCH}
+141 −141

File changed.

Preview size limit exceeded, changes collapsed.

+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ readarray -t providers < <(
  jq -r 'to_entries
  | map_values(.value + { alias: .key })
  | .[]
  | select(."provider-source-address"?)
  | select(."homepage"?)
  | .alias' providers.json
)

+6 −12
Original line number Diff line number Diff line
@@ -103,27 +103,21 @@ echo_provider() {
pushd "$(dirname "$0")" >/dev/null

if [[ ${provider} =~ ^[^/]+/[^/]+$ ]]; then
  echo_provider "init"
  source_address=registry.terraform.io/${provider}
  homepage="https://registry.terraform.io/providers/${provider}"
  provider=$(basename "${provider}")
  update_attr "provider-source-address" "${source_address}"
  echo_provider "init"
  update_attr homepage "${homepage}"
  # create empty stings so nix-prefetch works
  update_attr hash ""
  update_attr vendorHash ""
else
  source_address="$(read_attr provider-source-address)"
fi

homepage="$(read_attr homepage)"

old_vendor_hash=$(read_attr vendorHash)
old_rev=$(read_attr rev)

# The provider source address (used inside Terraform `required_providers` block) is
# used to compute the registry API endpoint
#
# registry.terraform.io/hashicorp/aws (provider source address)
# registry.terraform.io/providers/hashicorp/aws (provider URL for the website)
# registry.terraform.io/v1/providers/hashicorp/aws (provider URL for the JSON API)
registry_response=$(curl -s https://"${source_address/\///v1/providers/}")
registry_response=$(curl -s "${homepage//providers/v1/providers}")

rev="$(jq -r '.tag' <<<"${registry_response}")"
if [[ ${old_rev} == "${rev}" && ${force} != 1 && -z ${vendorHash} && ${old_vendor_hash} != "${vendorHash}" ]]; then