anchor.diff:      });
   
     # These providers are managed with the ./update-all script
  -  automated-providers = lib.mapAttrs (toDrv) list;
  +  automated-providers = lib.mapAttrs (_: attrs:
  +    (if (lib.hasAttr "vendorSha256" attrs) then buildWithGoModule else buildWithGoPackage)
  +      attrs) list;
   
     # These are the providers that don't fall in line with the default model
     special-providers = {
  
positive.code: { lib
  , buildGoPackage
  , fetchFromGitHub
  , callPackage
  
negative.code: let
    list = lib.importJSON ./providers.json;
  
    buildWithGoModule = data:
      buildGoModule {
        pname = data.repo;
        version = data.version;
        subPackages = [ "." ];
        src = fetchFromGitHub {
          inherit (data) owner repo rev sha256;
        };
        vendorSha256 = data.vendorSha256 or null;
  
        # Terraform allow checking the provider versions, but this breaks
        # if the versions are not provided via file paths.
        postBuild = "mv $NIX_BUILD_TOP/go/bin/${data.repo}{,_v${data.version}}";
        passthru = data;
      };
  
    buildWithGoPackage = data:
      buildGoPackage {
        pname = data.repo;
        version = data.version;
  