forked from mirrors/nixpkgs
terraform-providers: add homepage that can be used as provider-source-address
also proper urls in the json
This commit is contained in:
parent
70f5922404
commit
b18d379a91
|
@ -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}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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
|
||||
)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue