Simon Ratner created MYNEWT-527:
-----------------------------------

             Summary: newt - Run bsp scripts on Windows
                 Key: MYNEWT-527
                 URL: https://issues.apache.org/jira/browse/MYNEWT-527
             Project: Mynewt
          Issue Type: Bug
          Components: Newt
    Affects Versions: v1_0_0_beta1
         Environment: Windows 10, WSL, MSYS2
            Reporter: Simon Ratner
            Assignee: Sterling Hughes


Now that the `newt` tool no longer runs commands through a shell, it is not 
able to execute bsp scripts (`_download.sh` / `_debug.sh`) on Windows, where 
`CreateProcess` can't run shell scripts natively.

A solution that works pretty well is to create parallel `_download.cmd` / 
`_debug.cmd` scripts with just the following:
{noformat}
@rem Execute a shell with a script of the same name and .sh extension
@sh "%~dp0%~n0.sh"
{noformat}

And modify bsp.yml to use those instead, for example for `nrf51dk`:
{noformat}
diff --git a/hw/bsp/nrf51dk/bsp.yml b/hw/bsp/nrf51dk/bsp.yml
index 5e78d60..95b57f6 100644
--- a/hw/bsp/nrf51dk/bsp.yml
+++ b/hw/bsp/nrf51dk/bsp.yml
@@ -26,8 +26,8 @@ bsp.linkerscript.BOOT_LOADER.OVERWRITE:
     - "hw/bsp/nrf51dk/boot-nrf51xxac.ld"
     - "hw/mcu/nordic/nrf51xxx/nrf51.ld"
 bsp.part2linkerscript: "hw/bsp/nrf51dk/split-nrf51dk.ld"
-bsp.downloadscript: "hw/bsp/nrf51dk/nrf51dk_download.sh"
-bsp.debugscript: "hw/bsp/nrf51dk/nrf51dk_debug.sh"
+bsp.downloadscript: "hw/bsp/nrf51dk/nrf51dk_download.cmd"
+bsp.debugscript: "hw/bsp/nrf51dk/nrf51dk_debug.cmd"

 bsp.flash_map:
     areas:
diff --git a/hw/bsp/nrf51dk/nrf51dk_debug.cmd b/hw/bsp/nrf51dk/nrf51dk_debug.cmd
new file mode 100644
index 0000000..354743d
--- /dev/null
+++ b/hw/bsp/nrf51dk/nrf51dk_debug.cmd
@@ -0,0 +1,2 @@
+@rem Execute a shell with a script of the same name and .sh extension
+@sh "%~dp0%~n0.sh"
diff --git a/hw/bsp/nrf51dk/nrf51dk_download.cmd 
b/hw/bsp/nrf51dk/nrf51dk_download.cmd
new file mode 100644
index 0000000..354743d
--- /dev/null
+++ b/hw/bsp/nrf51dk/nrf51dk_download.cmd
@@ -0,0 +1,2 @@
+@rem Execute a shell with a script of the same name and .sh extension
+@sh "%~dp0%~n0.sh"
{noformat}

At the very least, adding these scripts to the repo will allow devs to use 
`newt load` and `newt debug` on Windows with minimal effort (in combination 
with https://github.com/apache/incubator-mynewt-newt/pull/29).

How to best automate this is a question to the devs; perhaps platform overrides 
in `bsp.yml` to specify platform-specific scripts?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to