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

[04/23] incubator-mynewt-newt git commit: Warns on unmatched pkg.name and pkg.path

Warns on unmatched pkg.name and pkg.path

Add a warning (in verbose mode, -v) if the pkg.name doesn't match the path.


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/1193eccf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/1193eccf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/1193eccf

Branch: refs/heads/master
Commit: 1193eccf6c89dec384d0578c19e968f351ff853e
Parents: 1fb9697
Author: Fabio Utzig <ut...@utzig.org>
Authored: Tue Mar 7 16:48:43 2017 -0300
Committer: Fabio Utzig <ut...@utzig.org>
Committed: Tue Mar 7 16:52:51 2017 -0300

----------------------------------------------------------------------
 newt/interfaces/interfaces.go |  1 +
 newt/pkg/package.go           |  2 ++
 newt/project/project.go       | 27 +++++++++++++++++++++++++++
 3 files changed, 30 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/1193eccf/newt/interfaces/interfaces.go
----------------------------------------------------------------------
diff --git a/newt/interfaces/interfaces.go b/newt/interfaces/interfaces.go
index 6d54f8a..c12b58b 100644
--- a/newt/interfaces/interfaces.go
+++ b/newt/interfaces/interfaces.go
@@ -22,6 +22,7 @@ package interfaces
 type PackageInterface interface {
 	Name() string
 	FullName() string
+	BasePath() string
 	Repo() RepoInterface
 	Type() PackageType
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/1193eccf/newt/pkg/package.go
----------------------------------------------------------------------
diff --git a/newt/pkg/package.go b/newt/pkg/package.go
index d5d9403..58bf523 100644
--- a/newt/pkg/package.go
+++ b/newt/pkg/package.go
@@ -71,6 +71,8 @@ type Package interface {
 	FullName() string
 	// The type of package (lib, target, bsp, etc.)
 	Type() interfaces.PackageType
+	// BasePath is the path on disk if it's a local package
+	BasePath() string
 	// Hash of the contents of the package
 	Hash() (string, error)
 	// Description of this package

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/1193eccf/newt/project/project.go
----------------------------------------------------------------------
diff --git a/newt/project/project.go b/newt/project/project.go
index cc68c30..cec5102 100644
--- a/newt/project/project.go
+++ b/newt/project/project.go
@@ -497,15 +497,42 @@ func (proj *Project) Init(dir string) error {
 	return nil
 }
 
+func matchNamePath(name, path string) bool {
+	// assure that name and path use the same path separator...
+	names := filepath.SplitList(name)
+	name = filepath.Join(names...)
+
+	if strings.HasSuffix(path, name) {
+		return true
+	}
+	return false
+}
+
 func (proj *Project) ResolveDependency(dep interfaces.DependencyInterface) interfaces.PackageInterface {
+	type NamePath struct {
+		name string
+		path string
+	}
+
+	var errorPkgs []NamePath
 	for _, pkgList := range proj.packages {
 		for _, pkg := range *pkgList {
+			name := pkg.Name()
+			path := pkg.BasePath()
+			if !matchNamePath(name, path) {
+				errorPkgs = append(errorPkgs, NamePath{name: name, path: path})
+			}
 			if dep.SatisfiesDependency(pkg) {
 				return pkg
 			}
 		}
 	}
 
+	for _, namepath := range errorPkgs {
+		util.StatusMessage(util.VERBOSITY_VERBOSE,
+			"Package name \"%s\" doesn't match path \"%s\"\n", namepath.name, namepath.path)
+	}
+
 	return nil
 }