in newt/cli/target_cmds.go [726:943]
func AddTargetCommands(cmd *cobra.Command) {
targetHelpText := ""
targetHelpEx := ""
targetCmd := &cobra.Command{
Use: "target",
Short: "Commands to create, delete, configure, and query targets",
Long: targetHelpText,
Example: targetHelpEx,
Run: func(cmd *cobra.Command, args []string) {
cmd.Usage()
},
}
cmd.AddCommand(targetCmd)
showHelpText := "Show all the variables for the target specified " +
"by <target-name>."
showHelpEx := " newt target show <target-name>\n"
showHelpEx += " newt target show my_target1"
showCmd := &cobra.Command{
Use: "show",
Short: "View target configuration variables",
Long: showHelpText,
Example: showHelpEx,
Run: targetShowCmd,
}
showCmd.Flags().BoolVarP(&showAll, "all", "a", false,
"Show all targets (including from other repos)")
targetCmd.AddCommand(showCmd)
AddTabCompleteFn(showCmd, targetList)
listHelpText := "List all available targets."
listHelpEx := " newt target list"
listCmd := &cobra.Command{
Use: "list",
Short: "List available targets",
Long: listHelpText,
Example: listHelpEx,
Run: targetListCmd,
}
listCmd.Flags().BoolVarP(&listAll, "all", "a", false,
"List all targets (including from other repos)")
targetCmd.AddCommand(listCmd)
cmakeHelpText := "Generate CMakeLists.txt for target specified " +
"by <target-name>."
cmakeHelpEx := " newt target cmake <target-name>\n"
cmakeHelpEx += " newt target cmake my_target1"
cmakeCmd := &cobra.Command{
Use: "cmake",
Short: "",
Long: cmakeHelpText,
Example: cmakeHelpEx,
Run: targetCmakeCmd,
}
targetCmd.AddCommand(cmakeCmd)
AddTabCompleteFn(cmakeCmd, targetList)
setHelpText := "Set a target variable (<var-name>) on target "
setHelpText += "<target-name> to value <value>.\n"
setHelpText += "Variables that can be set are:\n"
setHelpText += strings.Join(setVars, "\n") + "\n\n"
setHelpText += "Warning: When setting the syscfg variable, a new syscfg.yml file\n"
setHelpText += "is created and the current settings are deleted. Only the settings\n"
setHelpText += "specified in the command are saved in the syscfg.yml file."
setHelpText += "\nIf you want to change or add a new syscfg value and keep the other\n"
setHelpText += "syscfg values, use the newt target amend command.\n"
setHelpEx := " newt target set my_target1 build_profile=optimized "
setHelpEx += "cflags=\"-DNDEBUG\"\n"
setHelpEx += " newt target set my_target1 "
setHelpEx += "syscfg=LOG_NEWTMGR=1:CONFIG_NEWTMGR=0\n"
setCmd := &cobra.Command{
Use: "set <target-name> <var-name>=<value> " +
"[<var-name>=<value>...]",
Short: "Set target configuration variable",
Long: setHelpText,
Example: setHelpEx,
Run: targetSetCmd,
}
targetCmd.AddCommand(setCmd)
AddTabCompleteFn(setCmd, targetList)
amendHelpText := "Add, change, or delete values for multi-value target variables\n\n"
amendHelpText += "Variables that can have values amended are:\n"
amendHelpText += strings.Join(amendVars, "\n") + "\n\n"
amendHelpText += "To change the value for a single value variable, such as bsp, use the\nnewt target set command.\n"
amendHelpEx := " newt target amend my_target cflags=\"-DNDEBUG -DTEST\"\n"
amendHelpEx += " Adds -DDEBUG and -DTEST to cflags\n\n"
amendHelpEx += " newt target amend my_target lflags=\"-Lmylib\" "
amendHelpEx += "syscfg=LOG_LEVEL:CONFIG_NEWTMGR=0\n"
amendHelpEx += " Adds -Lmylib to lflags and syscfg variables LOG_LEVEL=1 and CONFIG_NEWTMGR=0\n\n"
amendHelpEx += " newt target amend my_target -d syscfg=CONFIG_NEWTMGR "
amendHelpEx += "cflags=\"-DNDEBUG\"\n"
amendHelpEx += " Deletes syscfg variable CONFIG_NEWTMGR and -DNDEBUG from cflags\n"
amendCmd := &cobra.Command{
Use: "amend <target-name> <var-name>=<value>" +
"[<var-name>=<value>...]\n",
Short: "Add, change, or delete values for multi-value target variables",
Long: amendHelpText,
Example: amendHelpEx,
Run: targetAmendCmd,
}
amendCmd.Flags().BoolVarP(&amendDelete, "delete", "d", false,
"Delete Variable values")
targetCmd.AddCommand(amendCmd)
AddTabCompleteFn(amendCmd, targetList)
createHelpText := "Create a target specified by <target-name>."
createHelpEx := " newt target create <target-name>\n"
createHelpEx += " newt target create my_target1"
createCmd := &cobra.Command{
Use: "create",
Short: "Create a target",
Long: createHelpText,
Example: createHelpEx,
Run: targetCreateCmd,
}
targetCmd.AddCommand(createCmd)
delHelpText := "Delete the target specified by <target-name>."
delHelpEx := " newt target delete <target-name>\n"
delHelpEx += " newt target delete my_target1"
delCmd := &cobra.Command{
Use: "delete",
Short: "Delete target",
Long: delHelpText,
Example: delHelpEx,
Run: targetDelCmd,
}
delCmd.PersistentFlags().BoolVarP(&newtutil.NewtForce,
"force", "f", false,
"Force delete of targets with user files without prompt")
targetCmd.AddCommand(delCmd)
copyHelpText := "Create a new target <dst-target> by cloning <src-target>"
copyHelpEx := " newt target copy blinky_sim my_target"
copyCmd := &cobra.Command{
Use: "copy <src-target> <dst-target>",
Short: "Copy target",
Long: copyHelpText,
Example: copyHelpEx,
Run: targetCopyCmd,
}
targetCmd.AddCommand(copyCmd)
AddTabCompleteFn(copyCmd, targetList)
depHelpText := "View a target's dependency graph."
depCmd := &cobra.Command{
Use: "dep <target> [pkg-1] [pkg-2] [...]",
Short: "View target's dependency graph",
Long: depHelpText,
Run: targetDepCmd,
}
targetCmd.AddCommand(depCmd)
AddTabCompleteFn(depCmd, func() []string {
return append(targetList(), unittestList()...)
})
depvizHelpText := "Output dependency graph in DOT format."
depvizCmd := &cobra.Command{
Use: "depviz <target> [pkg-1] [pkg-2] [...]",
Short: "Output dependency graph in DOT format",
Long: depvizHelpText,
Run: targetDepvizCmd,
}
targetCmd.AddCommand(depvizCmd)
AddTabCompleteFn(depvizCmd, func() []string {
return append(targetList(), unittestList()...)
})
revdepHelpText := "View a target's reverse-dependency graph."
revdepCmd := &cobra.Command{
Use: "revdep <target> [pkg-1] [pkg-2] [...]",
Short: "View target's reverse-dependency graph",
Long: revdepHelpText,
Run: targetRevdepCmd,
}
targetCmd.AddCommand(revdepCmd)
AddTabCompleteFn(revdepCmd, func() []string {
return append(targetList(), unittestList()...)
})
revdepvizHelpText := "Output reverse-dependency graph in DOT format."
revdepvizCmd := &cobra.Command{
Use: "revdepviz <target> [pkg-1] [pkg-2] [...]",
Short: "Output reverse-dependency graph in DOT format",
Long: revdepvizHelpText,
Run: targetRevdepvizCmd,
}
targetCmd.AddCommand(revdepvizCmd)
AddTabCompleteFn(revdepvizCmd, func() []string {
return append(targetList(), unittestList()...)
})
for _, cmd := range targetCfgCmdAll() {
targetCmd.AddCommand(cmd)
}
}