Skip to content

Commit

Permalink
compiler: extend flash command to support different output file types…
Browse files Browse the repository at this point in the history
…, based on contents of flash key in target file

Signed-off-by: Ron Evans <ron@hybridgroup.com>
  • Loading branch information
deadprogram committed Feb 23, 2019
1 parent 942d490 commit acaf096
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -318,14 +318,29 @@ func Flash(pkgName, target, port string, config *BuildConfig) error {
return err
}

return Compile(pkgName, ".hex", spec, config, func(tmppath string) error {
// determine the type of file to compile
var fileExt string

switch {
case strings.Contains(spec.Flasher, "{hex}"):
fileExt = ".hex"
case strings.Contains(spec.Flasher, "{elf}"):
fileExt = ".elf"
case strings.Contains(spec.Flasher, "{bin}"):
fileExt = ".bin"
default:
return errors.New("invalid target file - did you forget the {hex} token in the 'flash' section?")
}

return Compile(pkgName, fileExt, spec, config, func(tmppath string) error {
if spec.Flasher == "" {
return errors.New("no flash command specified - did you miss a -target flag?")
}

// Create the command.
flashCmd := spec.Flasher
flashCmd = strings.Replace(flashCmd, "{hex}", tmppath, -1)
fileToken := "{" + fileExt[1:] + "}"
flashCmd = strings.Replace(flashCmd, fileToken, tmppath, -1)
flashCmd = strings.Replace(flashCmd, "{port}", port, -1)

// Execute the command.
Expand Down

0 comments on commit acaf096

Please sign in to comment.