logout.go 1021 B

12345678910111213141516171819202122232425262728293031323334
  1. package client
  2. import (
  3. "fmt"
  4. flag "github.com/docker/docker/pkg/mflag"
  5. "github.com/docker/docker/registry"
  6. "github.com/docker/docker/utils"
  7. )
  8. // 'docker logout': log out a user from a registry service.
  9. func (cli *DockerCli) CmdLogout(args ...string) error {
  10. cmd := cli.Subcmd("logout", "[SERVER]", "Log out from a Docker registry, if no server is\nspecified \""+registry.IndexServerAddress()+"\" is the default.", true)
  11. cmd.Require(flag.Max, 1)
  12. utils.ParseFlags(cmd, args, false)
  13. serverAddress := registry.IndexServerAddress()
  14. if len(cmd.Args()) > 0 {
  15. serverAddress = cmd.Arg(0)
  16. }
  17. cli.LoadConfigFile()
  18. if _, ok := cli.configFile.Configs[serverAddress]; !ok {
  19. fmt.Fprintf(cli.out, "Not logged in to %s\n", serverAddress)
  20. } else {
  21. fmt.Fprintf(cli.out, "Remove login credentials for %s\n", serverAddress)
  22. delete(cli.configFile.Configs, serverAddress)
  23. if err := registry.SaveConfig(cli.configFile); err != nil {
  24. return fmt.Errorf("Failed to save docker config: %v", err)
  25. }
  26. }
  27. return nil
  28. }