github.com/scaleway/scaleway-cli@v1.11.1/pkg/cli/cmd_kill.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 cmdKill = &Command{
    10  	Exec:        runKill,
    11  	UsageLine:   "kill [OPTIONS] SERVER",
    12  	Description: "Kill a running server",
    13  	Help:        "Kill a running server.",
    14  }
    15  
    16  func init() {
    17  	cmdKill.Flag.BoolVar(&killHelp, []string{"h", "-help"}, false, "Print usage")
    18  	cmdKill.Flag.StringVar(&killGateway, []string{"g", "-gateway"}, "", "Use a SSH gateway")
    19  	cmdKill.Flag.StringVar(&killSSHUser, []string{"u", "-user"}, "root", "Specify SSH user")
    20  	cmdKill.Flag.IntVar(&killSSHPort, []string{"-p", "-port"}, 22, "Specify SSH port")
    21  	// FIXME: add --signal option
    22  }
    23  
    24  // Flags
    25  var killHelp bool      // -h, --help flag
    26  var killGateway string // -g, --gateway flag
    27  var killSSHUser string // -u, --user flag
    28  var killSSHPort int    // -p, --port flag
    29  
    30  func runKill(cmd *Command, rawArgs []string) error {
    31  	if killHelp {
    32  		return cmd.PrintUsage()
    33  	}
    34  	if len(rawArgs) < 1 {
    35  		return cmd.PrintShortUsage()
    36  	}
    37  
    38  	args := commands.KillArgs{
    39  		Gateway: killGateway,
    40  		Server:  rawArgs[0],
    41  		SSHUser: killSSHUser,
    42  		SSHPort: killSSHPort,
    43  	}
    44  	ctx := cmd.GetContext(rawArgs)
    45  	return commands.RunKill(ctx, args)
    46  }