github.com/scaleway/scaleway-cli@v1.11.1/pkg/cli/cmd_rm.go (about)

     1  // Copyright (C) 2015 Scaleway. All rights reserved.
     2  // Use of this source code is governed by a MIT-style
     3  // license that can be found in the LICENSE.md file.
     4  
     5  package cli
     6  
     7  import "github.com/scaleway/scaleway-cli/pkg/commands"
     8  
     9  var cmdRm = &Command{
    10  	Exec:        runRm,
    11  	UsageLine:   "rm [OPTIONS] SERVER [SERVER...]",
    12  	Description: "Remove one or more servers",
    13  	Help:        "Remove one or more servers.",
    14  	Examples: `
    15      $ scw rm myserver
    16      $ scw rm -f myserver
    17      $ scw rm my-stopped-server my-second-stopped-server
    18      $ scw rm $(scw ps -q)
    19      $ scw rm $(scw ps | grep mysql | awk '{print $1}')
    20  `,
    21  }
    22  
    23  func init() {
    24  	cmdRm.Flag.BoolVar(&rmHelp, []string{"h", "-help"}, false, "Print usage")
    25  	cmdRm.Flag.BoolVar(&rmForce, []string{"f", "-force"}, false, "Force the removal of a server")
    26  }
    27  
    28  // Flags
    29  var rmHelp bool  // -h, --help flag
    30  var rmForce bool // -f, --force flag
    31  
    32  func runRm(cmd *Command, rawArgs []string) error {
    33  	if rmHelp {
    34  		return cmd.PrintUsage()
    35  	}
    36  	if len(rawArgs) < 1 {
    37  		return cmd.PrintShortUsage()
    38  	}
    39  
    40  	args := commands.RmArgs{
    41  		Servers: rawArgs,
    42  		Force:   rmForce,
    43  	}
    44  	ctx := cmd.GetContext(rawArgs)
    45  	return commands.RunRm(ctx, args)
    46  }