This is an automated email from the ASF dual-hosted git repository.

ccollins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git


The following commit(s) were added to refs/heads/master by this push:
     new 7f8d70f  Allow BSP to override scripts with syscfg
7f8d70f is described below

commit 7f8d70f6229530d55ef7a420ba0dde0c5f711ed0
Author: Christopher Collins <ccoll...@apache.org>
AuthorDate: Tue Aug 27 15:15:50 2019 -0700

    Allow BSP to override scripts with syscfg
    
    Before commit, a `bsp.yml` file could not conditionally override its
    script names based on syscfg settings.  For example, if a `bsp.yml` file
    contains these lines:
    
        bsp.downloadscript: "my_script.sh"
        bsp.downloadscript.MY_SETTING.OVERWRITE: "your_script.sh"
    
    then `newt load` would always use the "my_script.sh" file, even if
    `MY_SETTING` is set to 1.
    
    This commit allows the user to override a BSP's scripts based on syscfg
    state.
    
    The fix is to re-parse the BSP package before loading or debugging.
---
 newt/builder/load.go | 48 +++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 41 insertions(+), 7 deletions(-)

diff --git a/newt/builder/load.go b/newt/builder/load.go
index 4573311..9d76060 100644
--- a/newt/builder/load.go
+++ b/newt/builder/load.go
@@ -34,21 +34,55 @@ import (
        "mynewt.apache.org/newt/util"
 )
 
-func (t *TargetBuilder) Load(extraJtagCmd string) error {
+func (t *TargetBuilder) loadLoader(slot int, extraJtagCmd string) error {
+       if err := t.bspPkg.Reload(t.LoaderBuilder.cfg.SettingValues()); err != 
nil {
+               return err
+       }
 
-       err := t.PrepBuild()
+       return t.LoaderBuilder.Load(slot, extraJtagCmd)
+}
+
+func (t *TargetBuilder) loadApp(slot int, extraJtagCmd string) error {
+       if err := t.bspPkg.Reload(t.AppBuilder.cfg.SettingValues()); err != nil 
{
+               return err
+       }
+
+       return t.AppBuilder.Load(slot, extraJtagCmd)
+}
+
+func (t *TargetBuilder) debugLoader(extraJtagCmd string, reset bool,
+       noGDB bool) error {
+
+       if err := t.bspPkg.Reload(t.LoaderBuilder.cfg.SettingValues()); err != 
nil {
+               return err
+       }
+
+       return t.LoaderBuilder.Debug(extraJtagCmd, reset, noGDB)
+}
+
+func (t *TargetBuilder) debugApp(extraJtagCmd string, reset bool,
+       noGDB bool) error {
+
+       if err := t.bspPkg.Reload(t.AppBuilder.cfg.SettingValues()); err != nil 
{
+               return err
+       }
+
+       return t.AppBuilder.Debug(extraJtagCmd, reset, noGDB)
+}
 
+func (t *TargetBuilder) Load(extraJtagCmd string) error {
+       err := t.PrepBuild()
        if err != nil {
                return err
        }
 
        if t.LoaderBuilder != nil {
-               err = t.AppBuilder.Load(1, extraJtagCmd)
+               err = t.loadApp(1, extraJtagCmd)
                if err == nil {
-                       err = t.LoaderBuilder.Load(0, extraJtagCmd)
+                       err = t.loadLoader(0, extraJtagCmd)
                }
        } else {
-               err = t.AppBuilder.Load(0, extraJtagCmd)
+               err = t.loadApp(0, extraJtagCmd)
        }
 
        return err
@@ -200,9 +234,9 @@ func (t *TargetBuilder) Debug(extraJtagCmd string, reset 
bool, noGDB bool) error
        }
 
        if t.LoaderBuilder == nil {
-               return t.AppBuilder.Debug(extraJtagCmd, reset, noGDB)
+               return t.debugApp(extraJtagCmd, reset, noGDB)
        }
-       return t.LoaderBuilder.Debug(extraJtagCmd, reset, noGDB)
+       return t.debugLoader(extraJtagCmd, reset, noGDB)
 }
 
 func (b *Builder) debugBin(binPath string, extraJtagCmd string, reset bool,

Reply via email to