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 2016/10/12 21:57:27 UTC
[1/2] incubator-mynewt-newt git commit: Recored latest commit hashes
in manifest
Repository: incubator-mynewt-newt
Updated Branches:
refs/heads/develop 80a676e13 -> 838d6fc7a
Recored latest commit hashes in manifest
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/b0bd9e66
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/b0bd9e66
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/b0bd9e66
Branch: refs/heads/develop
Commit: b0bd9e66b48a5080d3d89549038f301c318b6372
Parents: eca725e
Author: spoonofpower <sp...@gmail.com>
Authored: Wed Sep 7 21:18:58 2016 -0700
Committer: spoonofpower <sp...@gmail.com>
Committed: Tue Oct 4 23:09:28 2016 -0700
----------------------------------------------------------------------
newt/image/image.go | 95 ++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 87 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/b0bd9e66/newt/image/image.go
----------------------------------------------------------------------
diff --git a/newt/image/image.go b/newt/image/image.go
index cc57d3a..e144e60 100644
--- a/newt/image/image.go
+++ b/newt/image/image.go
@@ -128,10 +128,23 @@ type ImageManifest struct {
Pkgs []*ImageManifestPkg `json:"pkgs"`
LoaderPkgs []*ImageManifestPkg `json:"loader_pkgs"`
TgtVars []string `json:"target"`
+ Repos []ImageManifestRepo `json:"repos"`
}
type ImageManifestPkg struct {
Name string `json:"name"`
+ Repo string `json:"repo"`
+}
+
+type ImageManifestRepo struct {
+ Name string `json:"name"`
+ Commit string `json:"commit"`
+ Dirty bool `json:"dirty,omitempty"`
+ URL string `json:"url,omitempty"`
+}
+
+type repoManager struct {
+ repos map[string]ImageManifestRepo
}
type ECDSASig struct {
@@ -464,11 +477,9 @@ func CreateManifest(t *builder.TargetBuilder, app *Image, loader *Image, build_i
Date: timeStr,
}
+ rm := newRepoManager()
for _, builtPkg := range t.AppBuilder.PkgMap {
- imgPkg := &ImageManifestPkg{
- Name: builtPkg.Name(),
- }
- manifest.Pkgs = append(manifest.Pkgs, imgPkg)
+ manifest.Pkgs = append(manifest.Pkgs, rm.getImageManifestPkg(builtPkg))
}
if loader != nil {
@@ -476,12 +487,10 @@ func CreateManifest(t *builder.TargetBuilder, app *Image, loader *Image, build_i
manifest.LoaderHash = fmt.Sprintf("%x", loader.hash)
for _, builtPkg := range t.LoaderBuilder.PkgMap {
- imgPkg := &ImageManifestPkg{
- Name: builtPkg.Name(),
- }
- manifest.LoaderPkgs = append(manifest.LoaderPkgs, imgPkg)
+ manifest.LoaderPkgs = append(manifest.LoaderPkgs, rm.getImageManifestPkg(builtPkg))
}
}
+ manifest.Repos = rm.allRepos()
manifest.BuildID = fmt.Sprintf("%x", build_id)
@@ -514,3 +523,73 @@ func CreateManifest(t *builder.TargetBuilder, app *Image, loader *Image, build_i
return nil
}
+
+func newRepoManager() *repoManager {
+ return &repoManager{
+ repos: make(map[string]ImageManifestRepo),
+ }
+}
+
+func (r *repoManager) getImageManifestPkg(bp *builder.BuildPackage) *ImageManifestPkg {
+ ip := &ImageManifestPkg{
+ Name: bp.Name(),
+ }
+
+ var path string
+ if bp.Repo().IsLocal() {
+ ip.Repo = bp.LocalPackage.Repo().Name()
+ path = bp.LocalPackage.BasePath()
+ } else {
+ ip.Repo = bp.Repo().Name()
+ path = bp.BasePath()
+ }
+
+ if _, present := r.repos[ip.Repo]; present {
+ return ip
+ }
+
+ repo := ImageManifestRepo{
+ Name: ip.Repo,
+ }
+
+ res, err := util.ShellCommand(fmt.Sprintf("cd %s && git rev-parse head", path))
+ if err != nil {
+ log.Debugf("Unable to determine commit hash for %s: %v", path, err)
+ repo.Commit = "UNKNOWN"
+ } else {
+ repo.Commit = strings.TrimSpace(string(res))
+ res, err := util.ShellCommand(fmt.Sprintf("cd %s && git diff-index HEAD", path))
+ if err != nil {
+ log.Debugf("Unable to determine dirty state for %s: %v", path, err)
+ } else {
+ if len(res) > 0 {
+ repo.Dirty = true
+ }
+ }
+ res, err = util.ShellCommand(fmt.Sprintf("cd %s && git config --get remote.origin.url", path))
+ if err != nil {
+ log.Debugf("Unable to determine URL for %s: %v", path, err)
+ } else {
+ repo.URL = strings.TrimSpace(string(res))
+ }
+ }
+ r.repos[ip.Repo] = repo
+
+ return ip
+}
+
+func (r *repoManager) allRepos() []ImageManifestRepo {
+ keys := make([]string, 0, len(r.repos))
+ for k := range r.repos {
+ keys = append(keys, k)
+ }
+
+ sort.Strings(keys)
+
+ repos := make([]ImageManifestRepo, 0, len(keys))
+ for _, key := range keys {
+ repos = append(repos, r.repos[key])
+ }
+
+ return repos
+}
[2/2] incubator-mynewt-newt git commit: This closes #20.
Posted by cc...@apache.org.
This closes #20.
Merge remote-tracking branch 'spoonofpower/repo_hashes' into develop
* spoonofpower/repo_hashes:
Recored latest commit hashes in manifest
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/838d6fc7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/838d6fc7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/838d6fc7
Branch: refs/heads/develop
Commit: 838d6fc7aa48cf7f9e94e23cef32b9708b10291e
Parents: 80a676e b0bd9e6
Author: Christopher Collins <cc...@apache.org>
Authored: Wed Oct 12 14:56:31 2016 -0700
Committer: Christopher Collins <cc...@apache.org>
Committed: Wed Oct 12 14:56:31 2016 -0700
----------------------------------------------------------------------
newt/image/image.go | 95 ++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 87 insertions(+), 8 deletions(-)
----------------------------------------------------------------------