github.com/scaleway/scaleway-cli@v1.11.1/pkg/cli/cmd_stop.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 cmdStop = &Command{
    10  	Exec:        runStop,
    11  	UsageLine:   "stop [OPTIONS] SERVER [SERVER...]",
    12  	Description: "Stop a running server",
    13  	Help:        "Stop a running server.",
    14  	Examples: `
    15      $ scw stop my-running-server my-second-running-server
    16      $ scw stop -t my-running-server my-second-running-server
    17      $ scw stop $(scw ps -q)
    18      $ scw stop $(scw ps | grep mysql | awk '{print $1}')
    19      $ scw stop server && stop wait server
    20      $ scw stop -w server
    21  `,
    22  }
    23  
    24  func init() {
    25  	cmdStop.Flag.BoolVar(&stopT, []string{"t", "-terminate"}, false, "Stop and trash a server with its volumes")
    26  	cmdStop.Flag.BoolVar(&stopHelp, []string{"h", "-help"}, false, "Print usage")
    27  	cmdStop.Flag.BoolVar(&stopW, []string{"w", "-wait"}, false, "Synchronous stop. Wait for SSH to be ready")
    28  }
    29  
    30  // Flags
    31  var stopT bool    // -t flag
    32  var stopHelp bool // -h, --help flag
    33  var stopW bool    // -w, --wait flat
    34  
    35  func runStop(cmd *Command, rawArgs []string) error {
    36  	if stopHelp {
    37  		return cmd.PrintUsage()
    38  	}
    39  	if len(rawArgs) < 1 {
    40  		return cmd.PrintShortUsage()
    41  	}
    42  
    43  	args := commands.StopArgs{
    44  		Terminate: stopT,
    45  		Wait:      stopW,
    46  		Servers:   rawArgs,
    47  	}
    48  	ctx := cmd.GetContext(rawArgs)
    49  	return commands.RunStop(ctx, args)
    50  }