You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2016/09/07 21:05:04 UTC

incubator-mynewt-newt git commit: MYNEWT-309; change project.yml config for directories to exclude to be project.ignore_dirs. Allow full path names, instead of just top-level directory.

Repository: incubator-mynewt-newt
Updated Branches:
  refs/heads/develop 75c540e6b -> e287dae75


MYNEWT-309; change project.yml config for directories to exclude
to be project.ignore_dirs. Allow full path names, instead of just top-level
directory.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/e287dae7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/e287dae7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/e287dae7

Branch: refs/heads/develop
Commit: e287dae75c602378affe7c7c6df82d71f62bb743
Parents: 75c540e
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Wed Sep 7 14:00:27 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Wed Sep 7 14:00:27 2016 -0700

----------------------------------------------------------------------
 newt/pkg/localpackage.go | 39 +++++++++++++++------------------------
 newt/project/project.go  | 36 ++++++------------------------------
 newt/repo/repo.go        | 26 +++++++++++++++++++++++++-
 3 files changed, 46 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/e287dae7/newt/pkg/localpackage.go
----------------------------------------------------------------------
diff --git a/newt/pkg/localpackage.go b/newt/pkg/localpackage.go
index 5f3b115..0e73d8d 100644
--- a/newt/pkg/localpackage.go
+++ b/newt/pkg/localpackage.go
@@ -371,32 +371,27 @@ func ReadLocalPackageRecursive(repo *repo.Repo,
 	pkgList map[string]interfaces.PackageInterface, basePath string,
 	pkgName string) error {
 
-	dirList, err := ioutil.ReadDir(basePath + "/" + pkgName)
+	dirList, err := repo.FilteredSearchList(pkgName)
 	if err != nil {
 		return util.NewNewtError(err.Error())
 	}
 
-	for _, dirEnt := range dirList {
-		if !dirEnt.IsDir() {
-			continue
-		}
-
-		name := dirEnt.Name()
+	for _, name := range dirList {
 		if LocalPackageSpecialName(name) || strings.HasPrefix(name, ".") {
 			continue
 		}
 
 		if err := ReadLocalPackageRecursive(repo, pkgList, basePath,
-			pkgName+"/"+name); err != nil {
+			filepath.Join(pkgName, name)); err != nil {
 			return err
 		}
 	}
 
-	if util.NodeNotExist(basePath + "/" + pkgName + "/" + PACKAGE_FILE_NAME) {
+	if util.NodeNotExist(filepath.Join(basePath, pkgName, PACKAGE_FILE_NAME)) {
 		return nil
 	}
 
-	pkg, err := LoadLocalPackage(repo, basePath+"/"+pkgName)
+	pkg, err := LoadLocalPackage(repo, filepath.Join(basePath, pkgName))
 	if err != nil {
 		return err
 	}
@@ -413,11 +408,16 @@ func ReadLocalPackageRecursive(repo *repo.Repo,
 	return nil
 }
 
-func ReadLocalPackages(repo *repo.Repo, basePath string,
-	searchPaths []string) (*map[string]interfaces.PackageInterface, error) {
+func ReadLocalPackages(repo *repo.Repo,
+	basePath string) (*map[string]interfaces.PackageInterface, error) {
 
 	pkgList := map[string]interfaces.PackageInterface{}
 
+	searchPaths, err := repo.FilteredSearchList("")
+	if err != nil {
+		return nil, err
+	}
+
 	for _, path := range searchPaths {
 		pkgDir := basePath + "/" + path
 
@@ -425,23 +425,14 @@ func ReadLocalPackages(repo *repo.Repo, basePath string,
 			continue
 		}
 
-		dirList, err := ioutil.ReadDir(pkgDir)
+		dirList, err := repo.FilteredSearchList(path)
 		if err != nil {
 			return nil, util.NewNewtError(err.Error())
 		}
 
 		for _, subDir := range dirList {
-			name := subDir.Name()
-			if filepath.HasPrefix(name, ".") || filepath.HasPrefix(name, "..") {
-				continue
-			}
-
-			if !subDir.IsDir() {
-				continue
-			}
-
-			if err := ReadLocalPackageRecursive(repo, pkgList, pkgDir,
-				name); err != nil {
+			if err := ReadLocalPackageRecursive(repo, pkgList, basePath,
+				filepath.Join(path, subDir)); err != nil {
 				return nil, util.NewNewtError(err.Error())
 			}
 		}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/e287dae7/newt/project/project.go
----------------------------------------------------------------------
diff --git a/newt/project/project.go b/newt/project/project.go
index fc6fb00..78585af 100644
--- a/newt/project/project.go
+++ b/newt/project/project.go
@@ -22,7 +22,6 @@ package project
 import (
 	"bufio"
 	"fmt"
-	"io/ioutil"
 	"os"
 	"path"
 	"strings"
@@ -387,6 +386,10 @@ func (proj *Project) loadRepo(rname string, v *viper.Viper) error {
 		return err
 	}
 
+	for _, ignDir := range ignoreSearchDirs {
+		r.AddIgnoreDir(ignDir)
+	}
+
 	rd, err := repo.NewRepoDependency(rname, rversreq)
 	if err != nil {
 		return err
@@ -439,7 +442,7 @@ func (proj *Project) loadConfig() error {
 		}
 	}
 
-	ignoreDirs := v.GetStringSlice("project.ignore_top_dirs")
+	ignoreDirs := v.GetStringSlice("project.ignore_dirs")
 	for _, ignDir := range ignoreDirs {
 		repoName, dirName, err := newtutil.ParsePackageString(ignDir)
 		if err != nil {
@@ -508,29 +511,6 @@ func findProjectDir(dir string) (string, error) {
 	return dir, nil
 }
 
-func (proj *Project) repoDirList(repo *repo.Repo) ([]string, error) {
-	list := []string{}
-
-	dirList, err := ioutil.ReadDir(repo.Path())
-	if err != nil {
-		return list, util.NewNewtError(err.Error())
-	}
-	for _, dirEnt := range dirList {
-		if !dirEnt.IsDir() {
-			continue
-		}
-		name := dirEnt.Name()
-		if strings.HasPrefix(name, ".") {
-			continue
-		}
-		if repo.IgnoreDir(name) {
-			continue
-		}
-		list = append(list, name)
-	}
-	return list, nil
-}
-
 func (proj *Project) loadPackageList() error {
 	proj.packages = interfaces.PackageList{}
 
@@ -538,12 +518,8 @@ func (proj *Project) loadPackageList() error {
 	// packages / store them in the project package list.
 	repos := proj.Repos()
 	for name, repo := range repos {
-		searchDirs, err := proj.repoDirList(repo)
-		if err != nil {
-			continue
-		}
 		log.Debugf("Loading packages in repository %s", repo.Path())
-		list, err := pkg.ReadLocalPackages(repo, repo.Path(), searchDirs)
+		list, err := pkg.ReadLocalPackages(repo, repo.Path())
 		if err != nil {
 			return err
 		}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/e287dae7/newt/repo/repo.go
----------------------------------------------------------------------
diff --git a/newt/repo/repo.go b/newt/repo/repo.go
index 4994f85..8ac6a0e 100644
--- a/newt/repo/repo.go
+++ b/newt/repo/repo.go
@@ -21,6 +21,7 @@ package repo
 
 import (
 	"fmt"
+	"io/ioutil"
 	"os"
 	"path/filepath"
 	"strings"
@@ -77,7 +78,7 @@ func (r *Repo) AddIgnoreDir(ignDir string) {
 	r.ignDirs = append(r.ignDirs, ignDir)
 }
 
-func (r *Repo) IgnoreDir(dir string) bool {
+func (r *Repo) ignoreDir(dir string) bool {
 	for _, idir := range r.ignDirs {
 		if idir == dir {
 			return true
@@ -86,6 +87,29 @@ func (r *Repo) IgnoreDir(dir string) bool {
 	return false
 }
 
+func (repo *Repo) FilteredSearchList(curPath string) ([]string, error) {
+	list := []string{}
+
+	dirList, err := ioutil.ReadDir(filepath.Join(repo.Path(), curPath))
+	if err != nil {
+		return list, util.NewNewtError(err.Error())
+	}
+	for _, dirEnt := range dirList {
+		if !dirEnt.IsDir() {
+			continue
+		}
+		name := dirEnt.Name()
+		if strings.HasPrefix(name, ".") {
+			continue
+		}
+		if repo.ignoreDir(filepath.Join(curPath, name)) {
+			continue
+		}
+		list = append(list, name)
+	}
+	return list, nil
+}
+
 func NewRepoDependency(rname string, verstr string) (*RepoDependency, error) {
 	var err error