1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Re-enabled help for run command and added client-side error messages when arguments are missing

This commit is contained in:
shin- 2013-03-26 08:31:26 -07:00
parent 3cce89d8ed
commit 2333be46aa
2 changed files with 10 additions and 5 deletions

View file

@ -814,14 +814,16 @@ func (srv *Server) CmdTag(stdin io.ReadCloser, stdout io.Writer, args ...string)
} }
func (srv *Server) CmdRun(stdin io.ReadCloser, stdout io.Writer, args ...string) error { func (srv *Server) CmdRun(stdin io.ReadCloser, stdout io.Writer, args ...string) error {
config, err := ParseRun(args) config, err := ParseRun(args, stdout)
if err != nil { if err != nil {
return err return err
} }
if config.Image == "" { if config.Image == "" {
fmt.Fprintln(stdout, "Error: Image not specified")
return fmt.Errorf("Image not specified") return fmt.Errorf("Image not specified")
} }
if len(config.Cmd) == 0 { if len(config.Cmd) == 0 {
fmt.Fprintln(stdout, "Error: Command not specified")
return fmt.Errorf("Command not specified") return fmt.Errorf("Command not specified")
} }
// Create new container // Create new container

View file

@ -3,8 +3,8 @@ package docker
import ( import (
"encoding/json" "encoding/json"
"errors" "errors"
"flag"
"fmt" "fmt"
"github.com/dotcloud/docker/rcli"
"github.com/kr/pty" "github.com/kr/pty"
"io" "io"
"io/ioutil" "io/ioutil"
@ -60,9 +60,12 @@ type Config struct {
Image string // Name of the image as it was passed by the operator (eg. could be symbolic) Image string // Name of the image as it was passed by the operator (eg. could be symbolic)
} }
func ParseRun(args []string) (*Config, error) { func ParseRun(args []string, stdout io.Writer) (*Config, error) {
cmd := flag.NewFlagSet("", flag.ContinueOnError) cmd := rcli.Subcmd(stdout, "run", "[OPTIONS] IMAGE COMMAND [ARG...]", "Run a command in a new container")
cmd.SetOutput(ioutil.Discard) if len(args) > 0 && args[0] != "--help" {
cmd.SetOutput(ioutil.Discard)
}
fl_user := cmd.String("u", "", "Username or UID") fl_user := cmd.String("u", "", "Username or UID")
fl_detach := cmd.Bool("d", false, "Detached mode: leave the container running in the background") fl_detach := cmd.Bool("d", false, "Detached mode: leave the container running in the background")
fl_stdin := cmd.Bool("i", false, "Keep stdin open even if not attached") fl_stdin := cmd.Bool("i", false, "Keep stdin open even if not attached")