func (proj *Project) loadPackageList() error { proj.packages = interfaces.PackageList{} // Go through a list of repositories, starting with local, and search for // packages / store them in the project package list. repos := proj.Repos() for name, repo := range repos { list, warnings, err := pkg.ReadLocalPackages(repo, repo.Path()) if err != nil { return err } else { proj.packages[name] = list } proj.warnings = append(proj.warnings, warnings...) } return nil }
// Resolves a path with an optional repo prefix (e.g., "@apache-mynewt-core"). func (proj *Project) ResolvePath( basePath string, name string) (string, error) { repoName, subPath, err := newtutil.ParsePackageString(name) if err != nil { return "", util.FmtNewtError("invalid path: %s (%s)", name, err.Error()) } if repoName == "" { return basePath + "/" + subPath, nil } else { repo := proj.repos[repoName] if repo == nil { return "", util.FmtNewtError("Unknown repository: %s", repoName) } return repo.Path() + "/" + subPath, nil } }