func findManifestFilePath()

in internal/manifest/extensionmanifest.go [78:96]


func findManifestFilePath(dir string) (string, error) {
	var (
		paths = []string{
			filepath.Join(dir, manifestFileName),       // this level (i.e. executable is in [EXT_NAME]/.)
			filepath.Join(dir, "..", manifestFileName), // one up (i.e. executable is in [EXT_NAME]/bin/.)
		}
	)

	for _, p := range paths {
		_, err := os.ReadFile(p)
		if err != nil && !os.IsNotExist(err) {
			return "", fmt.Errorf("cannot read file at path %s: %v", p, err)
		} else if err == nil {
			return p, nil
		}
	}

	return "", fmt.Errorf("cannot find HandlerEnvironment at paths: %s", strings.Join(paths, ", "))
}