func main()

in cmd/updatemodulemeta/main.go [38:109]


func main() {
	flag.Parse()

	repoRoot, err := repotools.GetRepoRoot()
	if err != nil {
		log.Fatalf("failed to get repository root: %v", err)
	}

	config, err := repotools.LoadConfig(repoRoot)
	if err != nil {
		log.Fatalf("failed to load repository config: %v", err)
	}

	discoverer := gomod.NewDiscoverer(repoRoot)

	if err = discoverer.Discover(); err != nil {
		log.Fatalf("failed to discover modules: %v", err)
	}

	tags, err := git.Tags(repoRoot)
	if err != nil {
		log.Fatalf("failed to retrieve git tags: %v", err)
	}

	moduleTags := git.ParseModuleTags(tags)

	if len(releaseFileName) > 0 {
		manifest, err := loadManifest(releaseFileName)
		if err != nil {
			log.Fatalf("failed to load release manifest file: %v", err)
		}
		for _, tag := range manifest.Tags {
			moduleTags.Add(tag)
		}
	}

	modules := discoverer.Modules()
	for it := modules.Iterator(); ; {
		module := it.Next()
		if module == nil {
			break
		}

		cfg := config.Modules[module.Path()]
		dirPath := module.AbsPath()
		if len(cfg.MetadataPackage) > 0 {
			pkgRel := filepath.Join(module.Path(), cfg.MetadataPackage)
			if m := module.Search(pkgRel); m != nil {
				log.Fatalf("%s metadata_package location must not be located in a sub-module",
					module.Path())
			}
			dirPath = filepath.Join(repoRoot, pkgRel)
		}
		goPackage, err := getModuleGoPackage(dirPath)
		if err != nil {
			log.Fatalf("failed to determine module go package: %v", err)
		}
		if len(goPackage) == 0 {
			log.Printf("[WARN] unable to determine go package for %v...skipping", module.Path())
			continue
		}
		latest, isTagged := moduleTags.Latest(module.Path())

		if cfg, ok := config.Modules[module.Path()]; (ok && cfg.NoTag) || !isTagged {
			latest = "tip"
		}

		if err := writeModuleMetadata(dirPath, goPackage, latest); err != nil {
			log.Fatalf("failed to write module metadata: %v", err)
		}
	}
}