Bläddra i källkod

Merge pull request #13077 from duglin/MoveCommands

Make list of commands for help less static
Jessie Frazelle 10 år sedan
förälder
incheckning
47fbe76a7e
1 ändrade filer med 59 tillägg och 42 borttagningar
  1. 59 42
      docker/flags.go

+ 59 - 42
docker/flags.go

@@ -5,15 +5,69 @@ import (
 	"os"
 	"path/filepath"
 	"runtime"
+	"sort"
 
 	"github.com/docker/docker/opts"
 	"github.com/docker/docker/pkg/homedir"
 	flag "github.com/docker/docker/pkg/mflag"
 )
 
+type command struct {
+	name        string
+	description string
+}
+
+type byName []command
+
+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 (
 	dockerCertPath  = os.Getenv("DOCKER_CERT_PATH")
 	dockerTlsVerify = os.Getenv("DOCKER_TLS_VERIFY") != ""
+
+	dockerCommands = []command{
+		{"attach", "Attach to a running container"},
+		{"build", "Build an image from a Dockerfile"},
+		{"commit", "Create a new image from a container's changes"},
+		{"cp", "Copy files/folders from a container's filesystem to the host path"},
+		{"create", "Create a new container"},
+		{"diff", "Inspect changes on a container's filesystem"},
+		{"events", "Get real time events from the server"},
+		{"exec", "Run a command in a running container"},
+		{"export", "Stream the contents of a container as a tar archive"},
+		{"history", "Show the history of an image"},
+		{"images", "List images"},
+		{"import", "Create a new filesystem image from the contents of a tarball"},
+		{"info", "Display system-wide information"},
+		{"inspect", "Return low-level information on a container or image"},
+		{"kill", "Kill a running container"},
+		{"load", "Load an image from a tar archive"},
+		{"login", "Register or log in to a Docker registry server"},
+		{"logout", "Log out from a Docker registry server"},
+		{"logs", "Fetch the logs of a container"},
+		{"port", "Lookup the public-facing port that is NAT-ed to PRIVATE_PORT"},
+		{"pause", "Pause all processes within a container"},
+		{"ps", "List containers"},
+		{"pull", "Pull an image or a repository from a Docker registry server"},
+		{"push", "Push an image or a repository to a Docker registry server"},
+		{"rename", "Rename an existing container"},
+		{"restart", "Restart a running container"},
+		{"rm", "Remove one or more containers"},
+		{"rmi", "Remove one or more images"},
+		{"run", "Run a command in a new container"},
+		{"save", "Save an image to a tar archive"},
+		{"search", "Search for an image on the Docker Hub"},
+		{"start", "Start a stopped container"},
+		{"stats", "Display a stream of a containers' resource usage statistics"},
+		{"stop", "Stop a running container"},
+		{"tag", "Tag an image into a repository"},
+		{"top", "Lookup the running processes of a container"},
+		{"unpause", "Unpause a paused container"},
+		{"version", "Show the Docker version information"},
+		{"wait", "Block until a container stops, then print its exit code"},
+	}
 )
 
 func init() {
@@ -75,49 +129,12 @@ func init() {
 
 		help := "\nCommands:\n"
 
-		for _, command := range [][]string{
-			{"attach", "Attach to a running container"},
-			{"build", "Build an image from a Dockerfile"},
-			{"commit", "Create a new image from a container's changes"},
-			{"cp", "Copy files/folders from a container's filesystem to the host path"},
-			{"create", "Create a new container"},
-			{"diff", "Inspect changes on a container's filesystem"},
-			{"events", "Get real time events from the server"},
-			{"exec", "Run a command in a running container"},
-			{"export", "Stream the contents of a container as a tar archive"},
-			{"history", "Show the history of an image"},
-			{"images", "List images"},
-			{"import", "Create a new filesystem image from the contents of a tarball"},
-			{"info", "Display system-wide information"},
-			{"inspect", "Return low-level information on a container or image"},
-			{"kill", "Kill a running container"},
-			{"load", "Load an image from a tar archive"},
-			{"login", "Register or log in to a Docker registry server"},
-			{"logout", "Log out from a Docker registry server"},
-			{"logs", "Fetch the logs of a container"},
-			{"port", "Lookup the public-facing port that is NAT-ed to PRIVATE_PORT"},
-			{"pause", "Pause all processes within a container"},
-			{"ps", "List containers"},
-			{"pull", "Pull an image or a repository from a Docker registry server"},
-			{"push", "Push an image or a repository to a Docker registry server"},
-			{"rename", "Rename an existing container"},
-			{"restart", "Restart a running container"},
-			{"rm", "Remove one or more containers"},
-			{"rmi", "Remove one or more images"},
-			{"run", "Run a command in a new container"},
-			{"save", "Save an image to a tar archive"},
-			{"search", "Search for an image on the Docker Hub"},
-			{"start", "Start a stopped container"},
-			{"stats", "Display a stream of a containers' resource usage statistics"},
-			{"stop", "Stop a running container"},
-			{"tag", "Tag an image into a repository"},
-			{"top", "Lookup the running processes of a container"},
-			{"unpause", "Unpause a paused container"},
-			{"version", "Show the Docker version information"},
-			{"wait", "Block until a container stops, then print its exit code"},
-		} {
-			help += fmt.Sprintf("    %-10.10s%s\n", command[0], command[1])
+		sort.Sort(byName(dockerCommands))
+
+		for _, cmd := range dockerCommands {
+			help += fmt.Sprintf("    %-10.10s%s\n", cmd.name, cmd.description)
 		}
+
 		help += "\nRun 'docker COMMAND --help' for more information on a command."
 		fmt.Fprintf(os.Stdout, "%s\n", help)
 	}