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 54f7450  Include custom commands in `newt dump` output
54f7450 is described below

commit 54f7450d86df06e6726618035cae63941fabcbeb
Author: Christopher Collins <[email protected]>
AuthorDate: Tue Oct 8 16:55:54 2019 -0700

    Include custom commands in `newt dump` output
    
    This allows the travis "dump tests" to verify that newt correctly parses
    the custom command fields in `pkg.yml` files.
---
 newt/dump/dump.go   | 18 +++++++++++++++++
 newt/dump/extcmd.go | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)

diff --git a/newt/dump/dump.go b/newt/dump/dump.go
index a88d043..2fe6888 100644
--- a/newt/dump/dump.go
+++ b/newt/dump/dump.go
@@ -34,6 +34,9 @@ type Report struct {
        Syscfg          Syscfg              `json:"syscfg"`
        Sysinit         Sysinit             `json:"sysinit"`
        Sysdown         Sysdown             `json:"sysdown"`
+       PreBuildCmds    ExtCmd              `json:"pre_build_cmds"`
+       PreLinkCmds     ExtCmd              `json:"pre_link_cmds"`
+       PostLinkCmds    ExtCmd              `json:"post_link_cmds"`
        Logcfg          Logcfg              `json:"logcfg"`
        ApiMap          map[string]string   `json:"api_map"`
        UnsatisfiedApis map[string][]string `json:"unsatisfied_apis"`
@@ -77,6 +80,21 @@ func NewReport(tb *builder.TargetBuilder) (Report, error) {
        }
        report.Sysdown = sd
 
+       report.PreBuildCmds, err = newExtCmd(res.PreBuildCmdCfg)
+       if err != nil {
+               return report, err
+       }
+
+       report.PreLinkCmds, err = newExtCmd(res.PreLinkCmdCfg)
+       if err != nil {
+               return report, err
+       }
+
+       report.PostLinkCmds, err = newExtCmd(res.PostLinkCmdCfg)
+       if err != nil {
+               return report, err
+       }
+
        lc, err := newLogcfg(res.LCfg)
        if err != nil {
                return report, err
diff --git a/newt/dump/extcmd.go b/newt/dump/extcmd.go
new file mode 100644
index 0000000..201437b
--- /dev/null
+++ b/newt/dump/extcmd.go
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package dump
+
+import (
+       "strconv"
+
+       "mynewt.apache.org/newt/newt/extcmd"
+       "mynewt.apache.org/newt/util"
+)
+
+type ExtCmdFunc struct {
+       Cmd     string `json:"cmd"`
+       Stage   int    `json:"stage"`
+       PkgName string `json:"package"`
+}
+
+type ExtCmd struct {
+       Cmds []ExtCmdFunc `json:"cmds"`
+}
+
+func newExtCmd(scfg extcmd.ExtCmdCfg) (ExtCmd, error) {
+       cmds := make([]ExtCmdFunc, len(scfg.StageFuncs))
+       for i, f := range scfg.StageFuncs {
+               stage, err := strconv.Atoi(f.Stage.Value)
+               if err != nil {
+                       return ExtCmd{}, util.ChildNewtError(err)
+               }
+               cmds[i] = ExtCmdFunc{
+                       Cmd:     f.Name,
+                       Stage:   stage,
+                       PkgName: f.Pkg.FullName(),
+               }
+       }
+
+       return ExtCmd{
+               Cmds: cmds,
+       }, nil
+}

Reply via email to