浏览代码

Consolidate the files in client/

Signed-off-by: Daniel Nephin <dnephin@docker.com>
Daniel Nephin 9 年之前
父节点
当前提交
01a34e43b3
共有 6 个文件被更改,包括 44 次插入52 次删除
  1. 3 2
      cli/usage.go
  2. 0 37
      cmd/docker/client.go
  3. 34 0
      cmd/docker/docker.go
  4. 0 0
      cmd/docker/docker_test.go
  5. 4 12
      cmd/docker/usage.go
  6. 3 1
      cmd/docker/usage_test.go

+ 3 - 2
cli/usage.go

@@ -6,7 +6,8 @@ type Command struct {
 	Description string
 }
 
-var dockerCommands = []Command{
+// DockerCommandUsage lists the top level docker commands and their short usage
+var DockerCommandUsage = []Command{
 	{"attach", "Attach to a running container"},
 	{"build", "Build an image from a Dockerfile"},
 	{"commit", "Create a new image from a container's changes"},
@@ -55,7 +56,7 @@ var dockerCommands = []Command{
 var DockerCommands = make(map[string]Command)
 
 func init() {
-	for _, cmd := range dockerCommands {
+	for _, cmd := range DockerCommandUsage {
 		DockerCommands[cmd.Name] = cmd
 	}
 }

+ 0 - 37
cmd/docker/client.go

@@ -1,37 +0,0 @@
-package main
-
-import (
-	"path/filepath"
-
-	cliflags "github.com/docker/docker/cli/flags"
-	"github.com/docker/docker/cliconfig"
-	flag "github.com/docker/docker/pkg/mflag"
-	"github.com/docker/docker/utils"
-)
-
-var (
-	commonFlags = cliflags.InitCommonFlags()
-	clientFlags = &cliflags.ClientFlags{FlagSet: new(flag.FlagSet), Common: commonFlags}
-)
-
-func init() {
-
-	client := clientFlags.FlagSet
-	client.StringVar(&clientFlags.ConfigDir, []string{"-config"}, cliconfig.ConfigDir(), "Location of client config files")
-
-	clientFlags.PostParse = func() {
-		clientFlags.Common.PostParse()
-
-		if clientFlags.ConfigDir != "" {
-			cliconfig.SetConfigDir(clientFlags.ConfigDir)
-		}
-
-		if clientFlags.Common.TrustKey == "" {
-			clientFlags.Common.TrustKey = filepath.Join(cliconfig.ConfigDir(), cliflags.DefaultTrustKeyFile)
-		}
-
-		if clientFlags.Common.Debug {
-			utils.EnableDebug()
-		}
-	}
-}

+ 34 - 0
cmd/docker/docker.go

@@ -3,16 +3,26 @@ package main
 import (
 	"fmt"
 	"os"
+	"path/filepath"
 
 	"github.com/Sirupsen/logrus"
 	"github.com/docker/docker/api/client"
 	"github.com/docker/docker/cli"
+	cliflags "github.com/docker/docker/cli/flags"
+	"github.com/docker/docker/cliconfig"
 	"github.com/docker/docker/dockerversion"
 	flag "github.com/docker/docker/pkg/mflag"
 	"github.com/docker/docker/pkg/term"
 	"github.com/docker/docker/utils"
 )
 
+var (
+	commonFlags = cliflags.InitCommonFlags()
+	clientFlags = initClientFlags(commonFlags)
+	flHelp      = flag.Bool([]string{"h", "-help"}, false, "Print usage")
+	flVersion   = flag.Bool([]string{"v", "-version"}, false, "Print version information and quit")
+)
+
 func main() {
 	// Set terminal emulation based on platform as required.
 	stdin, stdout, stderr := term.StdStreams()
@@ -30,6 +40,7 @@ func main() {
 
 		help := "\nCommands:\n"
 
+		dockerCommands := sortCommands(cli.DockerCommandUsage)
 		for _, cmd := range dockerCommands {
 			help += fmt.Sprintf("    %-10.10s%s\n", cmd.Name, cmd.Description)
 		}
@@ -75,3 +86,26 @@ func showVersion() {
 		fmt.Printf("Docker version %s, build %s\n", dockerversion.Version, dockerversion.GitCommit)
 	}
 }
+
+func initClientFlags(commonFlags *cliflags.CommonFlags) *cliflags.ClientFlags {
+	clientFlags := &cliflags.ClientFlags{FlagSet: new(flag.FlagSet), Common: commonFlags}
+	client := clientFlags.FlagSet
+	client.StringVar(&clientFlags.ConfigDir, []string{"-config"}, cliconfig.ConfigDir(), "Location of client config files")
+
+	clientFlags.PostParse = func() {
+		clientFlags.Common.PostParse()
+
+		if clientFlags.ConfigDir != "" {
+			cliconfig.SetConfigDir(clientFlags.ConfigDir)
+		}
+
+		if clientFlags.Common.TrustKey == "" {
+			clientFlags.Common.TrustKey = filepath.Join(cliconfig.ConfigDir(), cliflags.DefaultTrustKeyFile)
+		}
+
+		if clientFlags.Common.Debug {
+			utils.EnableDebug()
+		}
+	}
+	return clientFlags
+}

+ 0 - 0
cmd/docker/client_test.go → cmd/docker/docker_test.go


+ 4 - 12
cmd/docker/flags.go → cmd/docker/usage.go

@@ -4,12 +4,6 @@ import (
 	"sort"
 
 	"github.com/docker/docker/cli"
-	flag "github.com/docker/docker/pkg/mflag"
-)
-
-var (
-	flHelp    = flag.Bool([]string{"h", "-help"}, false, "Print usage")
-	flVersion = flag.Bool([]string{"v", "-version"}, false, "Print version information and quit")
 )
 
 type byName []cli.Command
@@ -18,13 +12,11 @@ func (a byName) Len() int           { return len(a) }
 func (a byName) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
 func (a byName) Less(i, j int) bool { return a[i].Name < a[j].Name }
 
-var dockerCommands []cli.Command
-
 // TODO(tiborvass): do not show 'daemon' on client-only binaries
 
-func init() {
-	for _, cmd := range cli.DockerCommands {
-		dockerCommands = append(dockerCommands, cmd)
-	}
+func sortCommands(commands []cli.Command) []cli.Command {
+	dockerCommands := make([]cli.Command, len(commands))
+	copy(dockerCommands, commands)
 	sort.Sort(byName(dockerCommands))
+	return dockerCommands
 }

+ 3 - 1
cmd/docker/flags_test.go → cmd/docker/usage_test.go

@@ -3,11 +3,13 @@ package main
 import (
 	"sort"
 	"testing"
+
+	"github.com/docker/docker/cli"
 )
 
 // Tests if the subcommands of docker are sorted
 func TestDockerSubcommandsAreSorted(t *testing.T) {
-	if !sort.IsSorted(byName(dockerCommands)) {
+	if !sort.IsSorted(byName(cli.DockerCommandUsage)) {
 		t.Fatal("Docker subcommands are not in sorted order")
 	}
 }