rename.go 871 B

12345678910111213141516171819202122232425262728293031323334
  1. package client
  2. import (
  3. "fmt"
  4. "strings"
  5. "golang.org/x/net/context"
  6. Cli "github.com/docker/docker/cli"
  7. flag "github.com/docker/docker/pkg/mflag"
  8. )
  9. // CmdRename renames a container.
  10. //
  11. // Usage: docker rename OLD_NAME NEW_NAME
  12. func (cli *DockerCli) CmdRename(args ...string) error {
  13. cmd := Cli.Subcmd("rename", []string{"OLD_NAME NEW_NAME"}, Cli.DockerCommands["rename"].Description, true)
  14. cmd.Require(flag.Exact, 2)
  15. cmd.ParseFlags(args, true)
  16. oldName := strings.TrimSpace(cmd.Arg(0))
  17. newName := strings.TrimSpace(cmd.Arg(1))
  18. if oldName == "" || newName == "" {
  19. return fmt.Errorf("Error: Neither old nor new names may be empty")
  20. }
  21. if err := cli.client.ContainerRename(context.Background(), oldName, newName); err != nil {
  22. fmt.Fprintf(cli.err, "%s\n", err)
  23. return fmt.Errorf("Error: failed to rename container named %s", oldName)
  24. }
  25. return nil
  26. }