diff --git a/functions/algolia-pump/main.go b/functions/algolia-pump/main.go index c734306..98e269c 100644 --- a/functions/algolia-pump/main.go +++ b/functions/algolia-pump/main.go @@ -63,6 +63,13 @@ func Invoke(ctx context.Context, e gcp.GCSEvent) error { if err := json.Unmarshal([]byte(configStr), &pkg); err != nil { return fmt.Errorf("could not decode config: %v", err) } + + if pkg.Autoupdate != nil && pkg.Autoupdate.ExcludeFromSearch != nil && *pkg.Autoupdate.ExcludeFromSearch { + // The package is exluded from the search index. Stop processing here. + log.Printf("%s: excluded from search. Exiting.\n", pkgName) + return nil + } + // update package version with latest versions, err := getExistingVersionsFromAggregatedMetadata(pkg) if err != nil { diff --git a/packages/packages.go b/packages/packages.go index 6e8a1fd..97cf365 100644 --- a/packages/packages.go +++ b/packages/packages.go @@ -23,10 +23,11 @@ type Author struct { // Autoupdate is used to update particular files from // a source type located at a target destination. type Autoupdate struct { - Source *string `json:"source,omitempty"` - Target *string `json:"target,omitempty"` - FileMap []FileMap `json:"fileMap,omitempty"` - IgnoreVersions []string `json:"ignoreVersions,omitempty"` + Source *string `json:"source,omitempty"` + Target *string `json:"target,omitempty"` + FileMap []FileMap `json:"fileMap,omitempty"` + IgnoreVersions []string `json:"ignoreVersions,omitempty"` + ExcludeFromSearch *bool `json:"excludeFromSearch,omitempty"` } // Optimization is used to enable/disable optimization