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 }