func (proj *Project) loadRepo(rname string, v *viper.Viper) error { varName := fmt.Sprintf("repository.%s", rname) repoVars := v.GetStringMapString(varName) if len(repoVars) == 0 { return util.NewNewtError(fmt.Sprintf("Missing configuration for "+ "repository %s.", rname)) } if repoVars["type"] == "" { return util.NewNewtError(fmt.Sprintf("Missing type for repository " + rname)) } dl, err := downloader.LoadDownloader(rname, repoVars) if err != nil { return err } rversreq := repoVars["vers"] r, err := repo.NewRepo(rname, rversreq, dl) if err != nil { return err } for _, ignDir := range ignoreSearchDirs { r.AddIgnoreDir(ignDir) } rd, err := repo.NewRepoDependency(rname, rversreq) if err != nil { return err } rd.Storerepo = r proj.localRepo.AddDependency(rd) log.Debugf("Loaded repository %s (type: %s, user: %s, repo: %s)", rname, repoVars["type"], repoVars["user"], repoVars["repo"]) proj.repos[r.Name()] = r return nil }