github.com/scaleway/scaleway-cli@v1.11.1/pkg/cli/cmd_commit.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 cmdCommit = &Command{
    10  	Exec:        runCommit,
    11  	UsageLine:   "commit [OPTIONS] SERVER [NAME]",
    12  	Description: "Create a new snapshot from a server's volume",
    13  	Help:        "Create a new snapshot from a server's volume.",
    14  	Examples: `
    15      $ scw commit my-stopped-server
    16      $ scw commit -v 1 my-stopped-server
    17  `,
    18  }
    19  
    20  func init() {
    21  	cmdCommit.Flag.IntVar(&commitVolume, []string{"v", "-volume"}, 0, "Volume slot")
    22  	cmdCommit.Flag.BoolVar(&commitHelp, []string{"h", "-help"}, false, "Print usage")
    23  }
    24  
    25  // Flags
    26  var commitVolume int // -v, --volume flag
    27  var commitHelp bool  // -h, --help flag
    28  
    29  func runCommit(cmd *Command, rawArgs []string) error {
    30  	if commitHelp {
    31  		return cmd.PrintUsage()
    32  	}
    33  	if len(rawArgs) < 1 {
    34  		return cmd.PrintShortUsage()
    35  	}
    36  
    37  	args := commands.CommitArgs{
    38  		Volume: commitVolume,
    39  		Server: rawArgs[0],
    40  		Name:   "",
    41  	}
    42  	if len(rawArgs) > 1 {
    43  		args.Name = rawArgs[1]
    44  	}
    45  
    46  	ctx := cmd.GetContext(rawArgs)
    47  	return commands.RunCommit(ctx, args)
    48  }