Browse code

Merge pull request #11893 from runcom/11892-refactor-utils-flags

Refactor utils/flags.go

Michael Crosby authored on 2015/03/31 05:35:40
Showing 41 changed files
... ...
@@ -23,7 +23,7 @@ func (cli *DockerCli) CmdAttach(args ...string) error {
23 23
 	)
24 24
 	cmd.Require(flag.Exact, 1)
25 25
 
26
-	utils.ParseFlags(cmd, args, true)
26
+	cmd.ParseFlags(args, true)
27 27
 	name := cmd.Arg(0)
28 28
 
29 29
 	stream, _, err := cli.call("GET", "/containers/"+name+"/json", nil, nil)
... ...
@@ -58,8 +58,7 @@ func (cli *DockerCli) CmdBuild(args ...string) error {
58 58
 	flCPUSetCpus := cmd.String([]string{"-cpuset-cpus"}, "", "CPUs in which to allow execution (0-3, 0,1)")
59 59
 
60 60
 	cmd.Require(flag.Exact, 1)
61
-
62
-	utils.ParseFlags(cmd, args, true)
61
+	cmd.ParseFlags(args, true)
63 62
 
64 63
 	var (
65 64
 		context  archive.Archive
... ...
@@ -11,7 +11,6 @@ import (
11 11
 	"github.com/docker/docker/pkg/parsers"
12 12
 	"github.com/docker/docker/registry"
13 13
 	"github.com/docker/docker/runconfig"
14
-	"github.com/docker/docker/utils"
15 14
 )
16 15
 
17 16
 // CmdCommit creates a new image from a container's changes.
... ...
@@ -28,7 +27,7 @@ func (cli *DockerCli) CmdCommit(args ...string) error {
28 28
 	flConfig := cmd.String([]string{"#run", "#-run"}, "", "This option is deprecated and will be removed in a future version in favor of inline Dockerfile-compatible commands")
29 29
 	cmd.Require(flag.Max, 2)
30 30
 	cmd.Require(flag.Min, 1)
31
-	utils.ParseFlags(cmd, args, true)
31
+	cmd.ParseFlags(args, true)
32 32
 
33 33
 	var (
34 34
 		name            = cmd.Arg(0)
... ...
@@ -8,7 +8,6 @@ import (
8 8
 	"github.com/docker/docker/engine"
9 9
 	"github.com/docker/docker/pkg/archive"
10 10
 	flag "github.com/docker/docker/pkg/mflag"
11
-	"github.com/docker/docker/utils"
12 11
 )
13 12
 
14 13
 // CmdCp copies files/folders from a path on the container to a directory on the host running the command.
... ...
@@ -20,7 +19,7 @@ func (cli *DockerCli) CmdCp(args ...string) error {
20 20
 	cmd := cli.Subcmd("cp", "CONTAINER:PATH HOSTDIR|-", "Copy files/folders from a PATH on the container to a HOSTDIR on the host\nrunning the command. Use '-' to write the data\nas a tar file to STDOUT.", true)
21 21
 	cmd.Require(flag.Exact, 2)
22 22
 
23
-	utils.ParseFlags(cmd, args, true)
23
+	cmd.ParseFlags(args, true)
24 24
 
25 25
 	var copyData engine.Env
26 26
 	info := strings.Split(cmd.Arg(0), ":")
... ...
@@ -142,7 +142,7 @@ func (cli *DockerCli) CmdCreate(args ...string) error {
142 142
 
143 143
 	config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
144 144
 	if err != nil {
145
-		utils.ReportError(cmd, err.Error(), true)
145
+		cmd.ReportError(err.Error(), true)
146 146
 	}
147 147
 	if config.Image == "" {
148 148
 		cmd.Usage()
... ...
@@ -6,7 +6,6 @@ import (
6 6
 	"github.com/docker/docker/engine"
7 7
 	"github.com/docker/docker/pkg/archive"
8 8
 	flag "github.com/docker/docker/pkg/mflag"
9
-	"github.com/docker/docker/utils"
10 9
 )
11 10
 
12 11
 // CmdDiff shows changes on a container's filesystem.
... ...
@@ -18,7 +17,7 @@ func (cli *DockerCli) CmdDiff(args ...string) error {
18 18
 	cmd := cli.Subcmd("diff", "CONTAINER", "Inspect changes on a container's filesystem", true)
19 19
 	cmd.Require(flag.Exact, 1)
20 20
 
21
-	utils.ParseFlags(cmd, args, true)
21
+	cmd.ParseFlags(args, true)
22 22
 
23 23
 	body, _, err := readBody(cli.call("GET", "/containers/"+cmd.Arg(0)+"/changes", nil, nil))
24 24
 
... ...
@@ -9,7 +9,6 @@ import (
9 9
 	flag "github.com/docker/docker/pkg/mflag"
10 10
 	"github.com/docker/docker/pkg/parsers/filters"
11 11
 	"github.com/docker/docker/pkg/timeutils"
12
-	"github.com/docker/docker/utils"
13 12
 )
14 13
 
15 14
 // CmdEvents prints a live stream of real time events from the server.
... ...
@@ -23,7 +22,7 @@ func (cli *DockerCli) CmdEvents(args ...string) error {
23 23
 	cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
24 24
 	cmd.Require(flag.Exact, 0)
25 25
 
26
-	utils.ParseFlags(cmd, args, true)
26
+	cmd.ParseFlags(args, true)
27 27
 
28 28
 	var (
29 29
 		v               = url.Values{}
... ...
@@ -7,7 +7,6 @@ import (
7 7
 	"os"
8 8
 
9 9
 	flag "github.com/docker/docker/pkg/mflag"
10
-	"github.com/docker/docker/utils"
11 10
 )
12 11
 
13 12
 // CmdExport exports a filesystem as a tar archive.
... ...
@@ -20,7 +19,7 @@ func (cli *DockerCli) CmdExport(args ...string) error {
20 20
 	outfile := cmd.String([]string{"o", "-output"}, "", "Write to a file, instead of STDOUT")
21 21
 	cmd.Require(flag.Exact, 1)
22 22
 
23
-	utils.ParseFlags(cmd, args, true)
23
+	cmd.ParseFlags(args, true)
24 24
 
25 25
 	var (
26 26
 		output io.Writer = cli.out
... ...
@@ -21,7 +21,7 @@ func (cli *DockerCli) CmdHistory(args ...string) error {
21 21
 	noTrunc := cmd.Bool([]string{"#notrunc", "-no-trunc"}, false, "Don't truncate output")
22 22
 	cmd.Require(flag.Exact, 1)
23 23
 
24
-	utils.ParseFlags(cmd, args, true)
24
+	cmd.ParseFlags(args, true)
25 25
 
26 26
 	body, _, err := readBody(cli.call("GET", "/images/"+cmd.Arg(0)+"/history", nil, nil))
27 27
 	if err != nil {
... ...
@@ -102,7 +102,7 @@ func (cli *DockerCli) CmdImages(args ...string) error {
102 102
 	cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
103 103
 	cmd.Require(flag.Max, 1)
104 104
 
105
-	utils.ParseFlags(cmd, args, true)
105
+	cmd.ParseFlags(args, true)
106 106
 
107 107
 	// Consolidate all filter flags, and sanity check them early.
108 108
 	// They'll get process in the daemon/server.
... ...
@@ -9,7 +9,6 @@ import (
9 9
 	flag "github.com/docker/docker/pkg/mflag"
10 10
 	"github.com/docker/docker/pkg/parsers"
11 11
 	"github.com/docker/docker/registry"
12
-	"github.com/docker/docker/utils"
13 12
 )
14 13
 
15 14
 // CmdImport creates an empty filesystem image, imports the contents of the tarball into the image, and optionally tags the image.
... ...
@@ -23,7 +22,7 @@ func (cli *DockerCli) CmdImport(args ...string) error {
23 23
 	cmd.Var(&flChanges, []string{"c", "-change"}, "Apply Dockerfile instruction to the created image")
24 24
 	cmd.Require(flag.Min, 1)
25 25
 
26
-	utils.ParseFlags(cmd, args, true)
26
+	cmd.ParseFlags(args, true)
27 27
 
28 28
 	var (
29 29
 		v          = url.Values{}
... ...
@@ -9,7 +9,6 @@ import (
9 9
 	"github.com/docker/docker/engine"
10 10
 	flag "github.com/docker/docker/pkg/mflag"
11 11
 	"github.com/docker/docker/pkg/units"
12
-	"github.com/docker/docker/utils"
13 12
 )
14 13
 
15 14
 // CmdInfo displays system-wide information.
... ...
@@ -18,7 +17,7 @@ import (
18 18
 func (cli *DockerCli) CmdInfo(args ...string) error {
19 19
 	cmd := cli.Subcmd("info", "", "Display system-wide information", true)
20 20
 	cmd.Require(flag.Exact, 0)
21
-	utils.ParseFlags(cmd, args, false)
21
+	cmd.ParseFlags(args, false)
22 22
 
23 23
 	body, _, err := readBody(cli.call("GET", "/info", nil, nil))
24 24
 	if err != nil {
... ...
@@ -20,7 +20,7 @@ func (cli *DockerCli) CmdInspect(args ...string) error {
20 20
 	tmplStr := cmd.String([]string{"f", "#format", "-format"}, "", "Format the output using the given go template")
21 21
 	cmd.Require(flag.Min, 1)
22 22
 
23
-	utils.ParseFlags(cmd, args, true)
23
+	cmd.ParseFlags(args, true)
24 24
 
25 25
 	var tmpl *template.Template
26 26
 	if *tmplStr != "" {
... ...
@@ -4,7 +4,6 @@ import (
4 4
 	"fmt"
5 5
 
6 6
 	flag "github.com/docker/docker/pkg/mflag"
7
-	"github.com/docker/docker/utils"
8 7
 )
9 8
 
10 9
 // CmdKill kills one or more running container using SIGKILL or a specified signal.
... ...
@@ -15,7 +14,7 @@ func (cli *DockerCli) CmdKill(args ...string) error {
15 15
 	signal := cmd.String([]string{"s", "-signal"}, "KILL", "Signal to send to the container")
16 16
 	cmd.Require(flag.Min, 1)
17 17
 
18
-	utils.ParseFlags(cmd, args, true)
18
+	cmd.ParseFlags(args, true)
19 19
 
20 20
 	var encounteredError error
21 21
 	for _, name := range cmd.Args() {
... ...
@@ -5,7 +5,6 @@ import (
5 5
 	"os"
6 6
 
7 7
 	flag "github.com/docker/docker/pkg/mflag"
8
-	"github.com/docker/docker/utils"
9 8
 )
10 9
 
11 10
 // CmdLoad loads an image from a tar archive.
... ...
@@ -18,7 +17,7 @@ func (cli *DockerCli) CmdLoad(args ...string) error {
18 18
 	infile := cmd.String([]string{"i", "-input"}, "", "Read from a tar archive file, instead of STDIN")
19 19
 	cmd.Require(flag.Exact, 0)
20 20
 
21
-	utils.ParseFlags(cmd, args, true)
21
+	cmd.ParseFlags(args, true)
22 22
 
23 23
 	var (
24 24
 		input io.Reader = cli.in
... ...
@@ -14,7 +14,6 @@ import (
14 14
 	flag "github.com/docker/docker/pkg/mflag"
15 15
 	"github.com/docker/docker/pkg/term"
16 16
 	"github.com/docker/docker/registry"
17
-	"github.com/docker/docker/utils"
18 17
 )
19 18
 
20 19
 // CmdLogin logs in or registers a user to a Docker registry service.
... ...
@@ -32,7 +31,7 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
32 32
 	cmd.StringVar(&password, []string{"p", "-password"}, "", "Password")
33 33
 	cmd.StringVar(&email, []string{"e", "-email"}, "", "Email")
34 34
 
35
-	utils.ParseFlags(cmd, args, true)
35
+	cmd.ParseFlags(args, true)
36 36
 
37 37
 	serverAddress := registry.IndexServerAddress()
38 38
 	if len(cmd.Args()) > 0 {
... ...
@@ -5,7 +5,6 @@ import (
5 5
 
6 6
 	flag "github.com/docker/docker/pkg/mflag"
7 7
 	"github.com/docker/docker/registry"
8
-	"github.com/docker/docker/utils"
9 8
 )
10 9
 
11 10
 // CmdLogout logs a user out from a Docker registry.
... ...
@@ -17,7 +16,7 @@ func (cli *DockerCli) CmdLogout(args ...string) error {
17 17
 	cmd := cli.Subcmd("logout", "[SERVER]", "Log out from a Docker registry, if no server is\nspecified \""+registry.IndexServerAddress()+"\" is the default.", true)
18 18
 	cmd.Require(flag.Max, 1)
19 19
 
20
-	utils.ParseFlags(cmd, args, false)
20
+	cmd.ParseFlags(args, false)
21 21
 	serverAddress := registry.IndexServerAddress()
22 22
 	if len(cmd.Args()) > 0 {
23 23
 		serverAddress = cmd.Arg(0)
... ...
@@ -6,7 +6,6 @@ import (
6 6
 
7 7
 	"github.com/docker/docker/engine"
8 8
 	flag "github.com/docker/docker/pkg/mflag"
9
-	"github.com/docker/docker/utils"
10 9
 )
11 10
 
12 11
 // CmdLogs fetches the logs of a given container.
... ...
@@ -21,7 +20,7 @@ func (cli *DockerCli) CmdLogs(args ...string) error {
21 21
 	)
22 22
 	cmd.Require(flag.Exact, 1)
23 23
 
24
-	utils.ParseFlags(cmd, args, true)
24
+	cmd.ParseFlags(args, true)
25 25
 
26 26
 	name := cmd.Arg(0)
27 27
 
... ...
@@ -4,7 +4,6 @@ import (
4 4
 	"fmt"
5 5
 
6 6
 	flag "github.com/docker/docker/pkg/mflag"
7
-	"github.com/docker/docker/utils"
8 7
 )
9 8
 
10 9
 // CmdPause pauses all processes within one or more containers.
... ...
@@ -13,7 +12,7 @@ import (
13 13
 func (cli *DockerCli) CmdPause(args ...string) error {
14 14
 	cmd := cli.Subcmd("pause", "CONTAINER [CONTAINER...]", "Pause all processes within a container", true)
15 15
 	cmd.Require(flag.Min, 1)
16
-	utils.ParseFlags(cmd, args, false)
16
+	cmd.ParseFlags(args, false)
17 17
 
18 18
 	var encounteredError error
19 19
 	for _, name := range cmd.Args() {
... ...
@@ -7,7 +7,6 @@ import (
7 7
 	"github.com/docker/docker/engine"
8 8
 	"github.com/docker/docker/nat"
9 9
 	flag "github.com/docker/docker/pkg/mflag"
10
-	"github.com/docker/docker/utils"
11 10
 )
12 11
 
13 12
 // CmdPort lists port mappings for a container.
... ...
@@ -17,7 +16,7 @@ import (
17 17
 func (cli *DockerCli) CmdPort(args ...string) error {
18 18
 	cmd := cli.Subcmd("port", "CONTAINER [PRIVATE_PORT[/PROTO]]", "List port mappings for the CONTAINER, or lookup the public-facing port that\nis NAT-ed to the PRIVATE_PORT", true)
19 19
 	cmd.Require(flag.Min, 1)
20
-	utils.ParseFlags(cmd, args, true)
20
+	cmd.ParseFlags(args, true)
21 21
 
22 22
 	stream, _, err := cli.call("GET", "/containers/"+cmd.Arg(0)+"/json", nil, nil)
23 23
 	if err != nil {
... ...
@@ -43,7 +43,7 @@ func (cli *DockerCli) CmdPs(args ...string) error {
43 43
 
44 44
 	cmd.Var(&flFilter, []string{"f", "-filter"}, "Filter output based on conditions provided")
45 45
 
46
-	utils.ParseFlags(cmd, args, true)
46
+	cmd.ParseFlags(args, true)
47 47
 	if *last == -1 && *nLatest {
48 48
 		*last = 1
49 49
 	}
... ...
@@ -19,7 +19,7 @@ func (cli *DockerCli) CmdPull(args ...string) error {
19 19
 	allTags := cmd.Bool([]string{"a", "-all-tags"}, false, "Download all tagged images in the repository")
20 20
 	cmd.Require(flag.Exact, 1)
21 21
 
22
-	utils.ParseFlags(cmd, args, true)
22
+	cmd.ParseFlags(args, true)
23 23
 
24 24
 	var (
25 25
 		v         = url.Values{}
... ...
@@ -7,7 +7,6 @@ import (
7 7
 	flag "github.com/docker/docker/pkg/mflag"
8 8
 	"github.com/docker/docker/pkg/parsers"
9 9
 	"github.com/docker/docker/registry"
10
-	"github.com/docker/docker/utils"
11 10
 )
12 11
 
13 12
 // CmdPush pushes an image or repository to the registry.
... ...
@@ -17,7 +16,7 @@ func (cli *DockerCli) CmdPush(args ...string) error {
17 17
 	cmd := cli.Subcmd("push", "NAME[:TAG]", "Push an image or a repository to the registry", true)
18 18
 	cmd.Require(flag.Exact, 1)
19 19
 
20
-	utils.ParseFlags(cmd, args, true)
20
+	cmd.ParseFlags(args, true)
21 21
 
22 22
 	name := cmd.Arg(0)
23 23
 
... ...
@@ -6,7 +6,6 @@ import (
6 6
 	"strconv"
7 7
 
8 8
 	flag "github.com/docker/docker/pkg/mflag"
9
-	"github.com/docker/docker/utils"
10 9
 )
11 10
 
12 11
 // CmdRestart restarts one or more running containers.
... ...
@@ -17,7 +16,7 @@ func (cli *DockerCli) CmdRestart(args ...string) error {
17 17
 	nSeconds := cmd.Int([]string{"t", "-time"}, 10, "Seconds to wait for stop before killing the container")
18 18
 	cmd.Require(flag.Min, 1)
19 19
 
20
-	utils.ParseFlags(cmd, args, true)
20
+	cmd.ParseFlags(args, true)
21 21
 
22 22
 	v := url.Values{}
23 23
 	v.Set("t", strconv.Itoa(*nSeconds))
... ...
@@ -5,7 +5,6 @@ import (
5 5
 	"net/url"
6 6
 
7 7
 	flag "github.com/docker/docker/pkg/mflag"
8
-	"github.com/docker/docker/utils"
9 8
 )
10 9
 
11 10
 func (cli *DockerCli) CmdRm(args ...string) error {
... ...
@@ -15,7 +14,7 @@ func (cli *DockerCli) CmdRm(args ...string) error {
15 15
 	force := cmd.Bool([]string{"f", "-force"}, false, "Force the removal of a running container (uses SIGKILL)")
16 16
 	cmd.Require(flag.Min, 1)
17 17
 
18
-	utils.ParseFlags(cmd, args, true)
18
+	cmd.ParseFlags(args, true)
19 19
 
20 20
 	val := url.Values{}
21 21
 	if *v {
... ...
@@ -6,7 +6,6 @@ import (
6 6
 
7 7
 	"github.com/docker/docker/engine"
8 8
 	flag "github.com/docker/docker/pkg/mflag"
9
-	"github.com/docker/docker/utils"
10 9
 )
11 10
 
12 11
 // CmdRmi removes all images with the specified name(s).
... ...
@@ -20,7 +19,7 @@ func (cli *DockerCli) CmdRmi(args ...string) error {
20 20
 	)
21 21
 	cmd.Require(flag.Min, 1)
22 22
 
23
-	utils.ParseFlags(cmd, args, true)
23
+	cmd.ParseFlags(args, true)
24 24
 
25 25
 	v := url.Values{}
26 26
 	if *force {
... ...
@@ -58,7 +58,7 @@ func (cli *DockerCli) CmdRun(args ...string) error {
58 58
 	config, hostConfig, cmd, err := runconfig.Parse(cmd, args)
59 59
 	// just in case the Parse does not exit
60 60
 	if err != nil {
61
-		utils.ReportError(cmd, err.Error(), true)
61
+		cmd.ReportError(err.Error(), true)
62 62
 	}
63 63
 
64 64
 	if len(hostConfig.Dns) > 0 {
... ...
@@ -7,7 +7,6 @@ import (
7 7
 	"os"
8 8
 
9 9
 	flag "github.com/docker/docker/pkg/mflag"
10
-	"github.com/docker/docker/utils"
11 10
 )
12 11
 
13 12
 // CmdSave saves one or more images to a tar archive.
... ...
@@ -20,7 +19,7 @@ func (cli *DockerCli) CmdSave(args ...string) error {
20 20
 	outfile := cmd.String([]string{"o", "-output"}, "", "Write to an file, instead of STDOUT")
21 21
 	cmd.Require(flag.Min, 1)
22 22
 
23
-	utils.ParseFlags(cmd, args, true)
23
+	cmd.ParseFlags(args, true)
24 24
 
25 25
 	var (
26 26
 		output io.Writer = cli.out
... ...
@@ -24,7 +24,7 @@ func (cli *DockerCli) CmdSearch(args ...string) error {
24 24
 	stars := cmd.Int([]string{"s", "#stars", "-stars"}, 0, "Only displays with at least x stars")
25 25
 	cmd.Require(flag.Exact, 1)
26 26
 
27
-	utils.ParseFlags(cmd, args, true)
27
+	cmd.ParseFlags(args, true)
28 28
 
29 29
 	name := cmd.Arg(0)
30 30
 	v := url.Values{}
... ...
@@ -54,7 +54,7 @@ func (cli *DockerCli) CmdStart(args ...string) error {
54 54
 	)
55 55
 
56 56
 	cmd.Require(flag.Min, 1)
57
-	utils.ParseFlags(cmd, args, true)
57
+	cmd.ParseFlags(args, true)
58 58
 
59 59
 	if *attach || *openStdin {
60 60
 		if cmd.NArg() > 1 {
... ...
@@ -13,7 +13,6 @@ import (
13 13
 	"github.com/docker/docker/api/types"
14 14
 	flag "github.com/docker/docker/pkg/mflag"
15 15
 	"github.com/docker/docker/pkg/units"
16
-	"github.com/docker/docker/utils"
17 16
 )
18 17
 
19 18
 type containerStats struct {
... ...
@@ -114,7 +113,7 @@ func (s *containerStats) Display(w io.Writer) error {
114 114
 func (cli *DockerCli) CmdStats(args ...string) error {
115 115
 	cmd := cli.Subcmd("stats", "CONTAINER [CONTAINER...]", "Display a live stream of one or more containers' resource usage statistics", true)
116 116
 	cmd.Require(flag.Min, 1)
117
-	utils.ParseFlags(cmd, args, true)
117
+	cmd.ParseFlags(args, true)
118 118
 
119 119
 	names := cmd.Args()
120 120
 	sort.Strings(names)
... ...
@@ -6,7 +6,6 @@ import (
6 6
 	"strconv"
7 7
 
8 8
 	flag "github.com/docker/docker/pkg/mflag"
9
-	"github.com/docker/docker/utils"
10 9
 )
11 10
 
12 11
 // CmdStop stops one or more running containers.
... ...
@@ -19,7 +18,7 @@ func (cli *DockerCli) CmdStop(args ...string) error {
19 19
 	nSeconds := cmd.Int([]string{"t", "-time"}, 10, "Seconds to wait for stop before killing it")
20 20
 	cmd.Require(flag.Min, 1)
21 21
 
22
-	utils.ParseFlags(cmd, args, true)
22
+	cmd.ParseFlags(args, true)
23 23
 
24 24
 	v := url.Values{}
25 25
 	v.Set("t", strconv.Itoa(*nSeconds))
... ...
@@ -6,7 +6,6 @@ import (
6 6
 	flag "github.com/docker/docker/pkg/mflag"
7 7
 	"github.com/docker/docker/pkg/parsers"
8 8
 	"github.com/docker/docker/registry"
9
-	"github.com/docker/docker/utils"
10 9
 )
11 10
 
12 11
 // CmdTag tags an image into a repository.
... ...
@@ -17,7 +16,7 @@ func (cli *DockerCli) CmdTag(args ...string) error {
17 17
 	force := cmd.Bool([]string{"f", "#force", "-force"}, false, "Force")
18 18
 	cmd.Require(flag.Exact, 2)
19 19
 
20
-	utils.ParseFlags(cmd, args, true)
20
+	cmd.ParseFlags(args, true)
21 21
 
22 22
 	var (
23 23
 		repository, tag = parsers.ParseRepositoryTag(cmd.Arg(1))
... ...
@@ -8,7 +8,6 @@ import (
8 8
 
9 9
 	"github.com/docker/docker/engine"
10 10
 	flag "github.com/docker/docker/pkg/mflag"
11
-	"github.com/docker/docker/utils"
12 11
 )
13 12
 
14 13
 // CmdTop displays the running processes of a container.
... ...
@@ -18,7 +17,7 @@ func (cli *DockerCli) CmdTop(args ...string) error {
18 18
 	cmd := cli.Subcmd("top", "CONTAINER [ps OPTIONS]", "Display the running processes of a container", true)
19 19
 	cmd.Require(flag.Min, 1)
20 20
 
21
-	utils.ParseFlags(cmd, args, true)
21
+	cmd.ParseFlags(args, true)
22 22
 
23 23
 	val := url.Values{}
24 24
 	if cmd.NArg() > 1 {
... ...
@@ -4,7 +4,6 @@ import (
4 4
 	"fmt"
5 5
 
6 6
 	flag "github.com/docker/docker/pkg/mflag"
7
-	"github.com/docker/docker/utils"
8 7
 )
9 8
 
10 9
 // CmdUnpause unpauses all processes within a container, for one or more containers.
... ...
@@ -13,7 +12,7 @@ import (
13 13
 func (cli *DockerCli) CmdUnpause(args ...string) error {
14 14
 	cmd := cli.Subcmd("unpause", "CONTAINER [CONTAINER...]", "Unpause all processes within a container", true)
15 15
 	cmd.Require(flag.Min, 1)
16
-	utils.ParseFlags(cmd, args, false)
16
+	cmd.ParseFlags(args, false)
17 17
 
18 18
 	var encounteredError error
19 19
 	for _, name := range cmd.Args() {
... ...
@@ -9,7 +9,6 @@ import (
9 9
 	"github.com/docker/docker/autogen/dockerversion"
10 10
 	"github.com/docker/docker/engine"
11 11
 	flag "github.com/docker/docker/pkg/mflag"
12
-	"github.com/docker/docker/utils"
13 12
 )
14 13
 
15 14
 // CmdVersion shows Docker version information.
... ...
@@ -21,7 +20,7 @@ func (cli *DockerCli) CmdVersion(args ...string) error {
21 21
 	cmd := cli.Subcmd("version", "", "Show the Docker version information.", true)
22 22
 	cmd.Require(flag.Exact, 0)
23 23
 
24
-	utils.ParseFlags(cmd, args, false)
24
+	cmd.ParseFlags(args, false)
25 25
 
26 26
 	if dockerversion.VERSION != "" {
27 27
 		fmt.Fprintf(cli.out, "Client version: %s\n", dockerversion.VERSION)
... ...
@@ -4,7 +4,6 @@ import (
4 4
 	"fmt"
5 5
 
6 6
 	flag "github.com/docker/docker/pkg/mflag"
7
-	"github.com/docker/docker/utils"
8 7
 )
9 8
 
10 9
 // CmdWait blocks until a container stops, then prints its exit code.
... ...
@@ -16,7 +15,7 @@ func (cli *DockerCli) CmdWait(args ...string) error {
16 16
 	cmd := cli.Subcmd("wait", "CONTAINER [CONTAINER...]", "Block until a container stops, then print its exit code.", true)
17 17
 	cmd.Require(flag.Min, 1)
18 18
 
19
-	utils.ParseFlags(cmd, args, true)
19
+	cmd.ParseFlags(args, true)
20 20
 
21 21
 	var encounteredError error
22 22
 	for _, name := range cmd.Args() {
... ...
@@ -1054,6 +1054,42 @@ func (f *FlagSet) Parse(arguments []string) error {
1054 1054
 	return nil
1055 1055
 }
1056 1056
 
1057
+// ParseFlags is a utility function that adds a help flag if withHelp is true,
1058
+// calls cmd.Parse(args) and prints a relevant error message if there are
1059
+// incorrect number of arguments. It returns error only if error handling is
1060
+// set to ContinueOnError and parsing fails. If error handling is set to
1061
+// ExitOnError, it's safe to ignore the return value.
1062
+func (cmd *FlagSet) ParseFlags(args []string, withHelp bool) error {
1063
+	var help *bool
1064
+	if withHelp {
1065
+		help = cmd.Bool([]string{"#help", "-help"}, false, "Print usage")
1066
+	}
1067
+	if err := cmd.Parse(args); err != nil {
1068
+		return err
1069
+	}
1070
+	if help != nil && *help {
1071
+		cmd.Usage()
1072
+		// just in case Usage does not exit
1073
+		os.Exit(0)
1074
+	}
1075
+	if str := cmd.CheckArgs(); str != "" {
1076
+		cmd.ReportError(str, withHelp)
1077
+	}
1078
+	return nil
1079
+}
1080
+
1081
+func (cmd *FlagSet) ReportError(str string, withHelp bool) {
1082
+	if withHelp {
1083
+		if os.Args[0] == cmd.Name() {
1084
+			str += ". See '" + os.Args[0] + " --help'"
1085
+		} else {
1086
+			str += ". See '" + os.Args[0] + " " + cmd.Name() + " --help'"
1087
+		}
1088
+	}
1089
+	fmt.Fprintf(cmd.Out(), "docker: %s.\n", str)
1090
+	os.Exit(1)
1091
+}
1092
+
1057 1093
 // Parsed reports whether f.Parse has been called.
1058 1094
 func (f *FlagSet) Parsed() bool {
1059 1095
 	return f.parsed
... ...
@@ -5,7 +5,6 @@ import (
5 5
 
6 6
 	"github.com/docker/docker/engine"
7 7
 	flag "github.com/docker/docker/pkg/mflag"
8
-	"github.com/docker/docker/utils"
9 8
 )
10 9
 
11 10
 type ExecConfig struct {
... ...
@@ -50,7 +49,7 @@ func ParseExec(cmd *flag.FlagSet, args []string) (*ExecConfig, error) {
50 50
 		container string
51 51
 	)
52 52
 	cmd.Require(flag.Min, 2)
53
-	if err := utils.ParseFlags(cmd, args, true); err != nil {
53
+	if err := cmd.ParseFlags(args, true); err != nil {
54 54
 		return nil, err
55 55
 	}
56 56
 	container = cmd.Arg(0)
... ...
@@ -96,7 +96,7 @@ func Parse(cmd *flag.FlagSet, args []string) (*Config, *HostConfig, *flag.FlagSe
96 96
 
97 97
 	cmd.Require(flag.Min, 1)
98 98
 
99
-	if err := utils.ParseFlags(cmd, args, true); err != nil {
99
+	if err := cmd.ParseFlags(args, true); err != nil {
100 100
 		return nil, nil, cmd, err
101 101
 	}
102 102
 
103 103
deleted file mode 100644
... ...
@@ -1,45 +0,0 @@
1
-package utils
2
-
3
-import (
4
-	"fmt"
5
-	"os"
6
-
7
-	flag "github.com/docker/docker/pkg/mflag"
8
-)
9
-
10
-// ParseFlags is a utility function that adds a help flag if withHelp is true,
11
-// calls cmd.Parse(args) and prints a relevant error message if there are
12
-// incorrect number of arguments. It returns error only if error handling is
13
-// set to ContinueOnError and parsing fails. If error handling is set to
14
-// ExitOnError, it's safe to ignore the return value.
15
-// TODO: move this to a better package than utils
16
-func ParseFlags(cmd *flag.FlagSet, args []string, withHelp bool) error {
17
-	var help *bool
18
-	if withHelp {
19
-		help = cmd.Bool([]string{"#help", "-help"}, false, "Print usage")
20
-	}
21
-	if err := cmd.Parse(args); err != nil {
22
-		return err
23
-	}
24
-	if help != nil && *help {
25
-		cmd.Usage()
26
-		// just in case Usage does not exit
27
-		os.Exit(0)
28
-	}
29
-	if str := cmd.CheckArgs(); str != "" {
30
-		ReportError(cmd, str, withHelp)
31
-	}
32
-	return nil
33
-}
34
-
35
-func ReportError(cmd *flag.FlagSet, str string, withHelp bool) {
36
-	if withHelp {
37
-		if os.Args[0] == cmd.Name() {
38
-			str += ". See '" + os.Args[0] + " --help'"
39
-		} else {
40
-			str += ". See '" + os.Args[0] + " " + cmd.Name() + " --help'"
41
-		}
42
-	}
43
-	fmt.Fprintf(cmd.Out(), "docker: %s.\n", str)
44
-	os.Exit(1)
45
-}