func targetConfigCmd(cmd *cobra.Command, args []string) { if len(args) != 1 { NewtUsage(cmd, util.NewNewtError("Must specify target name")) } InitProject() t, err := resolveExistingTargetArg(args[0]) if err != nil { NewtUsage(cmd, err) } b, err := builder.NewTargetBuilder(t) if err != nil { NewtUsage(nil, err) } cfgResolution, err := b.ExportCfg() if err != nil { NewtUsage(nil, err) } warningText := strings.TrimSpace(cfgResolution.WarningText()) if warningText != "" { for _, line := range strings.Split(warningText, "\n") { log.Warn(line) } } printCfg(t.Name(), cfgResolution.Cfg) }
func buildRunCmd(cmd *cobra.Command, args []string) { if len(args) < 1 { NewtUsage(cmd, nil) } InitProject() // Verify and resolve each specified package. targets, all, err := ResolveTargetsOrAll(args...) if err != nil { NewtUsage(cmd, err) } if all { // Collect all targets that specify an app package. targets = []*target.Target{} for _, name := range targetList() { t := ResolveTarget(name) if t != nil && t.AppName != "" { targets = append(targets, t) } } } for i, _ := range targets { // Reset the global state for the next build. // XXX: It is not good that this is necessary. This is certainly going // to bite us... if err := ResetGlobalState(); err != nil { NewtUsage(nil, err) } // Look up the target by name. This has to be done a second time here // now that the project has been reset. t := ResolveTarget(targets[i].Name()) if t == nil { NewtUsage(nil, util.NewNewtError("Failed to resolve target: "+ targets[i].Name())) } util.StatusMessage(util.VERBOSITY_DEFAULT, "Building target %s\n", t.FullName()) b, err := builder.NewTargetBuilder(t) if err != nil { NewtUsage(nil, err) } if err := b.Build(); err != nil { NewtUsage(nil, err) } util.StatusMessage(util.VERBOSITY_DEFAULT, "Target successfully built: %s\n", t.Name()) } }
func sizeRunCmd(cmd *cobra.Command, args []string) { if len(args) < 1 { NewtUsage(cmd, util.NewNewtError("Must specify target")) } InitProject() t := ResolveTarget(args[0]) if t == nil { NewtUsage(cmd, util.NewNewtError("Invalid target name: "+args[0])) } b, err := builder.NewTargetBuilder(t) if err != nil { NewtUsage(nil, err) } if err := b.Size(); err != nil { NewtUsage(cmd, err) } }
func debugRunCmd(cmd *cobra.Command, args []string) { if len(args) < 1 { NewtUsage(cmd, util.NewNewtError("Must specify target")) } InitProject() t := ResolveTarget(args[0]) if t == nil { NewtUsage(cmd, util.NewNewtError("Invalid target name: "+args[0])) } b, err := builder.NewTargetBuilder(t) if err != nil { NewtUsage(nil, err) } if err := b.Debug(extraJtagCmd, false, noGDB_flag); err != nil { NewtUsage(cmd, err) } }
func createImageRunCmd(cmd *cobra.Command, args []string) { var keyId uint8 var keystr string if len(args) < 2 { NewtUsage(cmd, util.NewNewtError("Must specify target and version")) } InitProject() targetName := args[0] t := ResolveTarget(targetName) if t == nil { NewtUsage(cmd, util.NewNewtError("Invalid target name: "+targetName)) } version := args[1] if len(args) > 2 { if len(args) > 3 { keyId64, err := strconv.ParseUint(args[3], 10, 8) if err != nil { NewtUsage(cmd, util.NewNewtError("Key ID must be between 0-255")) } keyId = uint8(keyId64) } keystr = args[2] } b, err := builder.NewTargetBuilder(t) if err != nil { NewtUsage(nil, err) } if _, _, err := b.CreateImages(version, keystr, keyId); err != nil { NewtUsage(cmd, err) return } }