github.com/scaleway/scaleway-cli@v1.11.1/pkg/cli/cmd_start.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 cmdStart = &Command{
    10  	Exec:        runStart,
    11  	UsageLine:   "start [OPTIONS] SERVER [SERVER...]",
    12  	Description: "Start a stopped server",
    13  	Help:        "Start a stopped server.",
    14  }
    15  
    16  func init() {
    17  	cmdStart.Flag.BoolVar(&startW, []string{"w", "-wait"}, false, "Synchronous start. Wait for SSH to be ready")
    18  	cmdStart.Flag.Float64Var(&startTimeout, []string{"T", "-timeout"}, 0, "Set timeout values to seconds")
    19  	cmdStart.Flag.BoolVar(&startHelp, []string{"h", "-help"}, false, "Print usage")
    20  	cmdStart.Flag.StringVar(&startSetState, []string{"-set-state"}, "", "Set a state after the boot")
    21  }
    22  
    23  // Flags
    24  var startW bool          // -w flag
    25  var startTimeout float64 // -T flag
    26  var startHelp bool       // -h, --help flag
    27  var startSetState string // -set-state flag
    28  
    29  func runStart(cmd *Command, rawArgs []string) error {
    30  	if startHelp {
    31  		return cmd.PrintUsage()
    32  	}
    33  	if len(rawArgs) < 1 {
    34  		return cmd.PrintShortUsage()
    35  	}
    36  
    37  	args := commands.StartArgs{
    38  		Servers:  rawArgs,
    39  		Timeout:  startTimeout,
    40  		Wait:     startW,
    41  		SetState: startSetState,
    42  	}
    43  	ctx := cmd.GetContext(rawArgs)
    44  	return commands.RunStart(ctx, args)
    45  }