func getModuleGoPackage()

in cmd/updatemodulemeta/main.go [111:152]


func getModuleGoPackage(dir string) (string, error) {
	var inspectFile string
	{
		metaFile := filepath.Join(dir, metadataFile)
		if _, err := os.Stat(metaFile); err == nil {
			inspectFile = metaFile
		} else if !os.IsNotExist(err) {
			return "", err
		}
	}
	if len(inspectFile) == 0 {
		err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
			if err != nil || path == dir {
				return err
			}

			if len(inspectFile) > 0 {
				return nil
			}

			if info.IsDir() {
				return filepath.SkipDir
			}

			name := info.Name()
			if strings.HasSuffix(name, ".go") && !strings.HasSuffix(name, "_test.go") {
				inspectFile = path
			}

			return nil
		})
		if err != nil {
			return "", err
		}
	}

	if len(inspectFile) == 0 {
		return "", nil
	}

	return readGoPackage(inspectFile)
}