Return-Path: X-Original-To: apmail-mynewt-commits-archive@minotaur.apache.org Delivered-To: apmail-mynewt-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 1B1E518D76 for ; Wed, 9 Mar 2016 20:23:24 +0000 (UTC) Received: (qmail 68027 invoked by uid 500); 9 Mar 2016 20:23:24 -0000 Delivered-To: apmail-mynewt-commits-archive@mynewt.apache.org Received: (qmail 67961 invoked by uid 500); 9 Mar 2016 20:23:24 -0000 Mailing-List: contact commits-help@mynewt.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@mynewt.incubator.apache.org Delivered-To: mailing list commits@mynewt.incubator.apache.org Received: (qmail 67872 invoked by uid 99); 9 Mar 2016 20:23:23 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Mar 2016 20:23:23 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 8D0DE1A0CE3 for ; Wed, 9 Mar 2016 20:23:23 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -3.549 X-Spam-Level: X-Spam-Status: No, score=-3.549 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.329] autolearn=disabled Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id OH8ShXVLF2ZE for ; Wed, 9 Mar 2016 20:23:21 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with SMTP id 3CDA960D60 for ; Wed, 9 Mar 2016 20:23:19 +0000 (UTC) Received: (qmail 66117 invoked by uid 99); 9 Mar 2016 20:23:17 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Mar 2016 20:23:17 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 5FE51E0454; Wed, 9 Mar 2016 20:23:17 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: marko@apache.org To: commits@mynewt.incubator.apache.org Date: Wed, 09 Mar 2016 20:23:39 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [24/50] incubator-mynewt-newt git commit: Allow multiple targets in delete command. Allow multiple targets in delete command. 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/aef3d397 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/aef3d397 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/aef3d397 Branch: refs/heads/develop Commit: aef3d397c82de355fa8a2511af204f9770af523d Parents: d2d5ef1 Author: Christopher Collins Authored: Tue Mar 8 15:18:15 2016 -0800 Committer: Christopher Collins Committed: Tue Mar 8 17:31:54 2016 -0800 ---------------------------------------------------------------------- newt/target/cmds.go | 67 +++++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/aef3d397/newt/target/cmds.go ---------------------------------------------------------------------- diff --git a/newt/target/cmds.go b/newt/target/cmds.go index c55fd39..d831063 100644 --- a/newt/target/cmds.go +++ b/newt/target/cmds.go @@ -33,12 +33,14 @@ import ( "mynewt.apache.org/newt/util" ) -// Type for sorting an array of target pointers alphabetically by name. -type ByName []*Target +func parseTargetName(arg string) (*Target, error) { + t := ResolveTargetName(arg) + if t == nil { + return nil, util.NewNewtError("Unknown target: " + arg) + } -func (a ByName) Len() int { return len(a) } -func (a ByName) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a ByName) Less(i, j int) bool { return a[i].Package().Name() < a[j].Package().Name() } + return t, nil +} func targetShowCmd(cmd *cobra.Command, args []string) { proj := project.GetProject() @@ -108,12 +110,10 @@ func targetSetCmd(cmd *cobra.Command, args []string) { } // Parse target name. - tName := args[0] - t := ResolveTargetName(tName) - if t == nil { - cli.NewtUsage(cmd, util.NewNewtError("Unknown target: "+tName)) + t, err := parseTargetName(args[0]) + if err != nil { + cli.NewtUsage(cmd, err) } - tName = t.Name() // Parse series of k=v pairs. If an argument doesn't contain a '=' // character, display the valid values for the variable and quit. @@ -155,10 +155,11 @@ func targetSetCmd(cmd *cobra.Command, args []string) { for _, kv := range vars { if kv[1] == "" { cli.StatusMessage(cli.VERBOSITY_DEFAULT, - "Target %s successfully unset %s\n", tName, kv[0]) + "Target %s successfully unset %s\n", t.Name(), kv[0]) } else { cli.StatusMessage(cli.VERBOSITY_DEFAULT, - "Target %s successfully set %s to %s\n", tName, kv[0], kv[1]) + "Target %s successfully set %s to %s\n", t.Name(), kv[0], + kv[1]) } } } @@ -198,22 +199,13 @@ func targetCreateCmd(cmd *cobra.Command, args []string) { } } -func targetDelCmd(cmd *cobra.Command, args []string) { - if len(args) < 1 { - cli.NewtUsage(cmd, util.NewNewtError("Must specify target to delete")) - } - - t := ResolveTargetName(args[0]) - if t == nil { - cli.NewtUsage(cmd, util.NewNewtError("Target does not exist")) - } - +func targetDelOne(t *Target) error { if !cli.Force { // Determine if the target directory contains extra user files. If it // does, a prompt (or force) is required to delete it. userFiles, err := t.ContainsUserFiles() if err != nil { - cli.NewtUsage(cmd, err) + return err } if userFiles { @@ -222,20 +214,37 @@ func targetDelCmd(cmd *cobra.Command, args []string) { "delete anyway? (y/N): ", t.basePkg.Name()) rc := scanner.Scan() if !rc || strings.ToLower(scanner.Text()) != "y" { - return + return nil } } } - // Clean target prior to deletion; ignore errors during clean. - //t.BuildClean(false) - if err := t.Delete(); err != nil { - cli.NewtUsage(cmd, err) + return err } cli.StatusMessage(cli.VERBOSITY_DEFAULT, - "Target %s successfully removed\n", args[0]) + "Target %s successfully removed\n", t.Name()) + + return nil +} + +func targetDelCmd(cmd *cobra.Command, args []string) { + if len(args) < 1 { + cli.NewtUsage(cmd, util.NewNewtError("Must specify at least one "+ + "target to delete")) + } + + targets, err := ResolveTargetNames(args...) + if err != nil { + cli.NewtUsage(cmd, err) + } + + for _, t := range targets { + if err := targetDelOne(t); err != nil { + cli.NewtUsage(cmd, err) + } + } } func AddCommands(cmd *cobra.Command) {