mirror of https://github.com/docker/docs.git
Merge pull request #977 from dotcloud/966-improve_docker_login_parameters-feature
* Client: Add options to docker login to be able to use it via script
This commit is contained in:
commit
752f99e8a1
63
commands.go
63
commands.go
|
@ -280,47 +280,66 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
|
||||||
return readStringOnRawTerminal(stdin, stdout, false)
|
return readStringOnRawTerminal(stdin, stdout, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
oldState, err := term.SetRawTerminal(cli.terminalFd)
|
cmd := Subcmd("login", "[OPTIONS]", "Register or Login to the docker registry server")
|
||||||
|
flUsername := cmd.String("u", "", "username")
|
||||||
|
flPassword := cmd.String("p", "", "password")
|
||||||
|
flEmail := cmd.String("e", "", "email")
|
||||||
|
err := cmd.Parse(args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer term.RestoreTerminal(cli.terminalFd, oldState)
|
|
||||||
|
|
||||||
cmd := Subcmd("login", "", "Register or Login to the docker registry server")
|
|
||||||
if err := cmd.Parse(args); err != nil {
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var oldState *term.State
|
||||||
|
if *flUsername == "" || *flPassword == "" || *flEmail == "" {
|
||||||
|
oldState, err = term.SetRawTerminal(cli.terminalFd)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer term.RestoreTerminal(cli.terminalFd, oldState)
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
username string
|
username string
|
||||||
password string
|
password string
|
||||||
email string
|
email string
|
||||||
)
|
)
|
||||||
|
|
||||||
fmt.Fprintf(cli.out, "Username (%s):", cli.authConfig.Username)
|
if *flUsername == "" {
|
||||||
username = readAndEchoString(cli.in, cli.out)
|
fmt.Fprintf(cli.out, "Username (%s): ", cli.authConfig.Username)
|
||||||
if username == "" {
|
username = readAndEchoString(cli.in, cli.out)
|
||||||
username = cli.authConfig.Username
|
if username == "" {
|
||||||
|
username = cli.authConfig.Username
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
username = *flUsername
|
||||||
}
|
}
|
||||||
if username != cli.authConfig.Username {
|
if username != cli.authConfig.Username {
|
||||||
fmt.Fprintf(cli.out, "Password: ")
|
if *flPassword == "" {
|
||||||
password = readString(cli.in, cli.out)
|
fmt.Fprintf(cli.out, "Password: ")
|
||||||
|
password = readString(cli.in, cli.out)
|
||||||
if password == "" {
|
if password == "" {
|
||||||
return fmt.Errorf("Error : Password Required")
|
return fmt.Errorf("Error : Password Required")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
password = *flPassword
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Fprintf(cli.out, "Email (%s): ", cli.authConfig.Email)
|
if *flEmail == "" {
|
||||||
email = readAndEchoString(cli.in, cli.out)
|
fmt.Fprintf(cli.out, "Email (%s): ", cli.authConfig.Email)
|
||||||
if email == "" {
|
email = readAndEchoString(cli.in, cli.out)
|
||||||
email = cli.authConfig.Email
|
if email == "" {
|
||||||
|
email = cli.authConfig.Email
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
email = *flEmail
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
password = cli.authConfig.Password
|
password = cli.authConfig.Password
|
||||||
email = cli.authConfig.Email
|
email = cli.authConfig.Email
|
||||||
}
|
}
|
||||||
term.RestoreTerminal(cli.terminalFd, oldState)
|
if oldState != nil {
|
||||||
|
term.RestoreTerminal(cli.terminalFd, oldState)
|
||||||
|
}
|
||||||
cli.authConfig.Username = username
|
cli.authConfig.Username = username
|
||||||
cli.authConfig.Password = password
|
cli.authConfig.Password = password
|
||||||
cli.authConfig.Email = email
|
cli.authConfig.Email = email
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
Usage: docker login
|
Usage: docker login [OPTIONS]
|
||||||
|
|
||||||
Register or Login to the docker registry server
|
Register or Login to the docker registry server
|
||||||
|
|
||||||
|
-e="": email
|
||||||
|
-p="": password
|
||||||
|
-u="": username
|
||||||
|
|
Loading…
Reference in New Issue