You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2017/03/06 21:16:42 UTC

[08/50] [abbrv] incubator-mynewt-newt git commit: add the pkg remove command to newt

add the pkg remove command to newt


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/432b8829
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/432b8829
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/432b8829

Branch: refs/heads/master
Commit: 432b8829aa184e2b21d1724845a8d24d8f2cc1e9
Parents: 30b0d8e
Author: Sterling Hughes <st...@runtime.io>
Authored: Sat Feb 11 16:29:02 2017 -0800
Committer: Sterling Hughes <st...@runtime.io>
Committed: Sat Feb 11 16:29:02 2017 -0800

----------------------------------------------------------------------
 newt/cli/pkg_cmds.go | 72 +++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 69 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/432b8829/newt/cli/pkg_cmds.go
----------------------------------------------------------------------
diff --git a/newt/cli/pkg_cmds.go b/newt/cli/pkg_cmds.go
index d04691e..75e9a00 100644
--- a/newt/cli/pkg_cmds.go
+++ b/newt/cli/pkg_cmds.go
@@ -29,6 +29,7 @@ import (
 	"github.com/spf13/cobra"
 	"mynewt.apache.org/newt/newt/interfaces"
 	"mynewt.apache.org/newt/newt/newtutil"
+	"mynewt.apache.org/newt/newt/pkg"
 	"mynewt.apache.org/newt/newt/project"
 	"mynewt.apache.org/newt/util"
 )
@@ -60,11 +61,11 @@ func pkgMoveCmd(cmd *cobra.Command, args []string) {
 
 	wd, err := os.Getwd()
 	if err != nil {
-		NewtUsage(cmd, util.NewNewtError(err.Error()))
+		NewtUsage(cmd, util.ChildNewtError(err))
 	}
 
 	if err := os.Chdir(proj.Path() + "/"); err != nil {
-		NewtUsage(cmd, util.NewNewtError(err.Error()))
+		NewtUsage(cmd, util.ChildNewtError(err))
 	}
 
 	/* Find source package, defaulting search to the local project if no
@@ -149,12 +150,64 @@ func pkgMoveCmd(cmd *cobra.Command, args []string) {
 	os.Chdir(wd)
 }
 
+func pkgRemoveCmd(cmd *cobra.Command, args []string) {
+	if len(args) != 1 {
+		NewtUsage(cmd, util.NewNewtError("Must specify a package name to delete"))
+	}
+
+	proj := TryGetProject()
+	interfaces.SetProject(proj)
+
+	wd, err := os.Getwd()
+	if err != nil {
+		NewtUsage(cmd, util.ChildNewtError(err))
+	}
+
+	if err := os.Chdir(proj.Path() + "/"); err != nil {
+		NewtUsage(cmd, util.ChildNewtError(err))
+	}
+	/* Resolve package, and get path from package to ensure we're being asked
+	 * to remove a valid path.
+	 */
+	repoName, pkgName, err := newtutil.ParsePackageString(args[0])
+	if err != nil {
+		os.Chdir(wd)
+		NewtUsage(cmd, err)
+	}
+
+	repo := proj.LocalRepo()
+	if repoName != "" {
+		repo = proj.FindRepo(repoName)
+		if repo == nil {
+			os.Chdir(wd)
+			NewtUsage(cmd, util.NewNewtError("Destination repo "+
+				repoName+" does not exist"))
+		}
+	}
+
+	pkg, err := pkg.LoadLocalPackage(repo, pkgName)
+	if err != nil {
+		os.Chdir(wd)
+		NewtUsage(cmd, err)
+	}
+
+	util.StatusMessage(util.VERBOSITY_DEFAULT, "Removing package %s\n",
+		args[0])
+
+	if err := os.RemoveAll(pkg.BasePath()); err != nil {
+		os.Chdir(wd)
+		NewtUsage(cmd, util.ChildNewtError(err))
+	}
+
+	os.Chdir(wd)
+}
+
 func AddPackageCommands(cmd *cobra.Command) {
 	/* Add the base package command, on top of which other commands are
 	 * keyed
 	 */
 	pkgHelpText := "Commands for creating and manipulating packages"
-	pkgHelpEx := "newt pkg new --type=pkg libs/mylib"
+	pkgHelpEx := "  newt pkg new --type=pkg libs/mylib"
 
 	pkgCmd := &cobra.Command{
 		Use:     "pkg",
@@ -197,4 +250,17 @@ func AddPackageCommands(cmd *cobra.Command) {
 	}
 
 	pkgCmd.AddCommand(moveCmd)
+
+	removeCmdHelpText := ""
+	removeCmdHelpEx := ""
+
+	removeCmd := &cobra.Command{
+		Use:     "remove",
+		Short:   "Remove a package",
+		Long:    removeCmdHelpText,
+		Example: removeCmdHelpEx,
+		Run:     pkgRemoveCmd,
+	}
+
+	pkgCmd.AddCommand(removeCmd)
 }