Beispiel #1
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "start",
		Description: "start an app for local development",
		Usage:       "[directory]",
		Action:      cmdStart,
		Flags: []cli.Flag{
			cli.StringFlag{
				Name:  "file, f",
				Value: "docker-compose.yml",
				Usage: "a file to use in place of docker-compose.yml",
			},
			cli.BoolFlag{
				Name:  "no-cache",
				Usage: "Do not use Docker cache during build.",
			},
		},
	})
	stdcli.RegisterCommand(cli.Command{
		Name:        "init",
		Description: "initialize an app for local development",
		Usage:       "[directory]",
		Action:      cmdInit,
	})
}
Beispiel #2
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "start",
		Description: "start an app for local development",
		Usage:       "[directory]",
		Action:      cmdStart,
		Flags: []cli.Flag{
			cli.StringFlag{
				Name:  "file, f",
				Value: "docker-compose.yml",
				Usage: "path to an alternate docker compose manifest file",
			},
			cli.BoolFlag{
				Name:  "no-cache",
				Usage: "pull fresh image dependencies",
			},
			cli.BoolTFlag{
				Name:  "sync",
				Usage: "synchronize local file changes into the running containers",
			},
		},
	})
	stdcli.RegisterCommand(cli.Command{
		Name:        "init",
		Description: "initialize an app for local development",
		Usage:       "[directory]",
		Action:      cmdInit,
	})
}
Beispiel #3
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "build",
		Description: "create a new build",
		Usage:       "",
		Action:      cmdBuildsCreate,
		Flags:       buildCreateFlags,
	})
	stdcli.RegisterCommand(cli.Command{
		Name:        "builds",
		Description: "manage an app's builds",
		Usage:       "",
		Action:      cmdBuilds,
		Flags:       []cli.Flag{appFlag, rackFlag},
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "create a new build",
				Usage:       "",
				Action:      cmdBuildsCreate,
				Flags:       buildCreateFlags,
			},
			{
				Name:        "copy",
				Description: "copy a build to an app",
				Usage:       "<ID> <app>",
				Action:      cmdBuildsCopy,
				Flags: []cli.Flag{
					appFlag,
					rackFlag,
					cli.BoolFlag{
						Name:  "promote",
						Usage: "promote the release after copy",
					},
				},
			},
			{
				Name:        "info",
				Description: "print output for a build",
				Usage:       "<ID>",
				Action:      cmdBuildsInfo,
				Flags:       []cli.Flag{appFlag, rackFlag},
			},
			{
				Name:        "delete",
				Description: "Archive a build and its artifacts",
				Usage:       "<ID>",
				Action:      cmdBuildsDelete,
				Flags:       []cli.Flag{appFlag, rackFlag},
			},
		},
	})
}
Beispiel #4
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "build",
		Description: "create a new build",
		Usage:       "",
		Action:      cmdBuildsCreate,
		Flags: []cli.Flag{
			appFlag,
			cli.BoolFlag{
				Name:  "no-cache",
				Usage: "Do not use Docker cache during build.",
			},
			cli.StringFlag{
				Name:  "file, f",
				Value: "docker-compose.yml",
				Usage: "a file to use in place of docker-compose.yml",
			},
		},
	})
	stdcli.RegisterCommand(cli.Command{
		Name:        "builds",
		Description: "manage an app's builds",
		Usage:       "",
		Action:      cmdBuilds,
		Flags:       []cli.Flag{appFlag},
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "create a new build",
				Usage:       "",
				Action:      cmdBuildsCreate,
				Flags: []cli.Flag{
					appFlag,
					cli.StringFlag{
						Name:  "file, f",
						Value: "docker-compose.yml",
						Usage: "a file to use in place of docker-compose.yml",
					},
				},
			},
			{
				Name:        "info",
				Description: "print output for a build",
				Usage:       "<ID>",
				Action:      cmdBuildsInfo,
				Flags:       []cli.Flag{appFlag},
			},
		},
	})
}
Beispiel #5
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "start",
		Description: "start an app for local development",
		Usage:       "[directory]",
		Action:      cmdStart,
	})
	stdcli.RegisterCommand(cli.Command{
		Name:        "init",
		Description: "initialize an app for local development",
		Usage:       "[directory]",
		Action:      cmdInit,
	})
}
Beispiel #6
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "builds",
		Description: "manage an app's builds",
		Usage:       "",
		Action:      cmdBuilds,
		Flags:       []cli.Flag{appFlag},
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "create a new build",
				Usage:       "",
				Action:      cmdBuildsCreate,
				Flags:       []cli.Flag{appFlag},
			},
			{
				Name:        "info",
				Description: "print output for a build",
				Usage:       "<ID>",
				Action:      cmdBuildsInfo,
				Flags:       []cli.Flag{appFlag},
			},
		},
	})
}
Beispiel #7
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "env",
		Description: "manage an app's environment variables",
		Usage:       "[get|set|unset]",
		Action:      cmdEnvList,
		Flags:       []cli.Flag{appFlag},
		Subcommands: []cli.Command{
			{
				Name:        "get",
				Description: "get all environment variables",
				Usage:       "VARIABLE",
				Action:      cmdEnvGet,
				Flags:       []cli.Flag{appFlag},
			},
			{
				Name:        "set",
				Description: "set an environment variable",
				Usage:       "VARIABLE=VALUE",
				Action:      cmdEnvSet,
				Flags:       []cli.Flag{appFlag},
			},
			{
				Name:        "unset",
				Description: "delete an environment varible",
				Usage:       "VARIABLE",
				Action:      cmdEnvUnset,
				Flags:       []cli.Flag{appFlag},
			},
		},
	})
}
Beispiel #8
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "doctor",
		Action:      cmdDoctor,
		Description: "Check your app for common Convox compatibility issues.",
	})
}
Beispiel #9
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "deploy",
		Description: "deploy an app to AWS",
		Usage:       "<directory>",
		Action:      cmdDeploy,
		Flags: []cli.Flag{
			appFlag,
			cli.BoolFlag{
				Name:  "no-cache",
				Usage: "pull fresh image dependencies",
			},
			cli.BoolFlag{
				Name:  "incremental",
				Usage: "use incremental build",
			},
			cli.StringFlag{
				Name:  "file, f",
				Value: "docker-compose.yml",
				Usage: "location of docker-compose.yml",
			},
			cli.StringFlag{
				Name:  "description",
				Value: "",
				Usage: "description of the build",
			},
		},
	})
}
Beispiel #10
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "logs",
		Description: "stream the logs for an application",
		Usage:       "",
		Action:      cmdLogsStream,
		Flags: []cli.Flag{
			appFlag,
			rackFlag,
			cli.StringFlag{
				Name:  "filter",
				Usage: "filter the logs by a given token",
			},
			cli.BoolTFlag{
				Name:  "follow",
				Usage: "keep streaming new log output (default)",
			},
			cli.DurationFlag{
				Name:  "since",
				Usage: "show logs since a duration (e.g. 10m or 1h2m10s)",
				Value: 2 * time.Minute,
			},
		},
	})
}
Beispiel #11
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "scale",
		Description: "scale an app's processes",
		Usage:       "<process> [--count=2] [--memory=256] [--cpu=256]",
		Action:      cmdScale,
		Flags: []cli.Flag{
			appFlag,
			rackFlag,
			cli.IntFlag{
				Name:  "count",
				Usage: "Number of processes to keep running for specified process type.",
			},
			cli.IntFlag{
				Name:  "memory",
				Usage: "Amount of memory, in MB, available to specified process type.",
			},
			cli.IntFlag{
				Name:  "cpu",
				Usage: "CPU units available to specified process type.",
			},
			cli.BoolFlag{
				Name:  "wait",
				Usage: "wait for app to finish scaling before returning",
			},
		},
	})
}
Beispiel #12
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "ssl",
		Action:      cmdSSLList,
		Description: "manage SSL certificates",
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "create a new SSL listener",
				Usage:       "<port> <foo.crt> <foo.key>",
				Action:      cmdSSLCreate,
				Flags: []cli.Flag{
					appFlag,
				},
			},
			{
				Name:        "delete",
				Description: "delete an SSL listener",
				Usage:       "<port>",
				Action:      cmdSSLDelete,
				Flags: []cli.Flag{
					appFlag,
				},
			},
		},
	})
}
Beispiel #13
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "rack",
		Description: "manage your Convox rack",
		Usage:       "",
		Action:      cmdRack,
		Subcommands: []cli.Command{
			{
				Name:        "update",
				Description: "update rack to the latest version",
				Usage:       "[version]",
				Action:      cmdRackUpdate,
			},
			{
				Name:        "scale",
				Description: "scale the rack capacity",
				Usage:       "",
				Action:      cmdRackScale,
				Flags: []cli.Flag{
					cli.IntFlag{
						Name:  "count",
						Usage: "horizontally scale the instance count, e.g. 3 or 10",
					},
					cli.StringFlag{
						Name:  "type",
						Usage: "vertically scale the instance type, e.g. t2.small or c3.xlargs",
					},
				},
			},
		},
	})
}
Beispiel #14
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "instances",
		Description: "list your Convox rack's instances",
		Usage:       "",
		Action:      cmdInstancesList,
		Flags:       []cli.Flag{rackFlag},
		Subcommands: []cli.Command{
			{
				Name:        "keyroll",
				Description: "generate and replace the ec2 keypair used for SSH",
				Usage:       "",
				Action:      cmdInstancesKeyroll,
				Flags:       []cli.Flag{rackFlag},
			},
			{
				Name:            "ssh",
				Description:     "establish secure shell with EC2 instance",
				Usage:           "<id> [command]",
				Action:          cmdInstancesSSH,
				Flags:           []cli.Flag{rackFlag},
				SkipFlagParsing: true,
			},
			{
				Name:        "terminate",
				Description: "terminate an EC2 instance",
				Usage:       "<id>",
				Flags:       []cli.Flag{rackFlag},
				Action:      cmdInstancesTerminate,
			},
		},
	})
}
Beispiel #15
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "services",
		Description: "manage services",
		Usage:       "",
		Action:      cmdServices,
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "create a new service",
				Usage:       "<type> <name>",
				Action:      cmdServiceCreate,
			},
			{
				Name:        "delete",
				Description: "delete a service",
				Usage:       "<name>",
				Action:      cmdServiceDelete,
			},
			{
				Name:        "info",
				Description: "info about a service",
				Usage:       "<name>",
				Action:      cmdServiceInfo,
			},
		},
	})
}
Beispiel #16
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "releases",
		Description: "list an app's releases",
		Usage:       "",
		Action:      cmdReleases,
		Flags:       []cli.Flag{appFlag},
		Subcommands: []cli.Command{
			{
				Name:        "info",
				Description: "see info about a release",
				Usage:       "<release id>",
				Action:      cmdReleaseInfo,
				Flags:       []cli.Flag{appFlag},
			},
			{
				Name:        "promote",
				Description: "promote a release",
				Usage:       "<release id>",
				Action:      cmdReleasePromote,
				Flags:       []cli.Flag{appFlag},
			},
		},
	})
}
Beispiel #17
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "apps",
		Action:      cmdApps,
		Description: "list deployed apps",
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "create a new application",
				Usage:       "[name]",
				Action:      cmdAppCreate,
			},
			{
				Name:        "delete",
				Description: "delete an application",
				Usage:       "[name]",
				Action:      cmdAppDelete,
			},
			{
				Name:        "info",
				Description: "see info about an app",
				Usage:       "",
				Action:      cmdAppInfo,
				Flags:       []cli.Flag{appFlag},
			},
		},
	})
}
Beispiel #18
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "releases",
		Description: "list an app's releases",
		Usage:       "",
		Action:      cmdReleases,
		Flags:       []cli.Flag{appFlag, rackFlag},
		Subcommands: []cli.Command{
			{
				Name:        "info",
				Description: "see info about a release",
				Usage:       "<release id>",
				Action:      cmdReleaseInfo,
				Flags:       []cli.Flag{appFlag, rackFlag},
			},
			{
				Name:        "promote",
				Description: "promote a release",
				Usage:       "<release id>",
				Action:      cmdReleasePromote,
				Flags: []cli.Flag{
					appFlag,
					rackFlag,
					cli.BoolFlag{
						Name:  "wait",
						Usage: "wait for release to finish promoting before returning",
					},
				},
			},
		},
	})
}
Beispiel #19
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "api",
		Description: "api endpoint",
		Usage:       "",
		Action:      cmdApi,
		Flags:       []cli.Flag{rackFlag},
		Subcommands: []cli.Command{
			{
				Name:        "get",
				Description: "get an api endpoint",
				Usage:       "<endpoint>",
				Action:      cmdApiGet,
				Flags:       []cli.Flag{rackFlag},
			},
			{
				Name:        "delete",
				Description: "delete an api endpoint",
				Usage:       "<endpoint>",
				Action:      cmdApiDelete,
				Flags:       []cli.Flag{rackFlag},
			},
		},
	})
}
Beispiel #20
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "start",
		Description: "start an app for local development",
		Usage:       "[service] [command]",
		Action:      cmdStart,
		Flags: []cli.Flag{
			cli.StringFlag{
				Name:  "file, f",
				Value: "docker-compose.yml",
				Usage: "path to an alternate docker compose manifest file",
			},
			cli.BoolFlag{
				Name:  "no-cache",
				Usage: "Pull fresh image dependencies",
			},
			cli.IntFlag{
				Name:  "shift",
				Usage: "shift allocated port numbers by the given amount",
			},
			cli.BoolFlag{
				Name:  "no-sync",
				Usage: "do not synchronize local file changes into the running containers",
			},
		},
	})
}
Beispiel #21
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "ps",
		Description: "list an app's processes",
		Usage:       "",
		Action:      cmdPs,
		Flags: []cli.Flag{
			appFlag,
			cli.BoolFlag{
				Name:  "stats",
				Usage: "display process cpu/memory stats",
			},
		},
		Subcommands: []cli.Command{
			{
				Name:        "info",
				Description: "show info for a process",
				Usage:       "<id>",
				Action:      cmdPsInfo,
				Flags:       []cli.Flag{appFlag},
			},
			{
				Name:        "stop",
				Description: "stop a process",
				Usage:       "<id>",
				Action:      cmdPsStop,
				Flags:       []cli.Flag{appFlag},
			},
		},
	})
}
Beispiel #22
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "apps",
		Action:      cmdApps,
		Description: "list deployed apps",
		Flags:       []cli.Flag{rackFlag},
		Subcommands: []cli.Command{
			{
				Name:        "cancel",
				Description: "cancel an update",
				Usage:       "",
				Action:      cmdAppCancel,
				Flags:       []cli.Flag{appFlag, rackFlag},
			},
			{
				Name:        "create",
				Description: "create a new application",
				Usage:       "<name>",
				Action:      cmdAppCreate,
				Flags: []cli.Flag{
					rackFlag,
					cli.BoolFlag{
						Name:  "wait",
						Usage: "wait for app to finish creating before returning",
					},
				},
			},
			{
				Name:        "delete",
				Description: "delete an application",
				Usage:       "<name>",
				Action:      cmdAppDelete,
				Flags:       []cli.Flag{rackFlag},
			},
			{
				Name:        "info",
				Description: "see info about an app",
				Usage:       "[name]",
				Action:      cmdAppInfo,
				Flags:       []cli.Flag{appFlag, rackFlag},
			},
			{
				Name:        "params",
				Description: "list advanced parameters for an app",
				Usage:       "[name]",
				Action:      cmdAppParams,
				Flags:       []cli.Flag{appFlag, rackFlag},
				Subcommands: []cli.Command{
					{
						Name:        "set",
						Description: "update advanced parameters for an app",
						Usage:       "NAME=VALUE [NAME=VALUE]",
						Action:      cmdAppParamsSet,
						Flags:       []cli.Flag{appFlag, rackFlag},
					},
				},
			},
		},
	})
}
Beispiel #23
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "certs",
		Action:      cmdCertsList,
		Description: "list certificates",
		Subcommands: []cli.Command{
			{
				Name:        "create",
				Description: "upload a certificate",
				Usage:       "<cert.pub> <cert.key>",
				Action:      cmdCertsCreate,
				Flags: []cli.Flag{
					cli.StringFlag{
						Name:  "chain",
						Usage: "intermediate certificate chain",
					},
				},
			},
			{
				Name:        "delete",
				Description: "delete a certificate",
				Usage:       "<id>",
				Action:      cmdCertsDelete,
			},
			{
				Name:        "generate",
				Description: "generate a certificate",
				Usage:       "<domain> [domain...]",
				Action:      cmdCertsGenerate,
			},
		},
	})
}
Beispiel #24
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "ssl",
		Action:      cmdSSLList,
		Description: "manage SSL certificates",
		Flags: []cli.Flag{
			appFlag,
			rackFlag,
		},
		Subcommands: []cli.Command{
			{
				Name:        "update",
				Description: "upload a replacement ssl certificate",
				Usage:       "<process:port> <certificate>",
				Action:      cmdSSLUpdate,
				Flags: []cli.Flag{
					appFlag,
					rackFlag,
					cli.StringFlag{
						Name:  "chain",
						Usage: "Intermediate certificate chain.",
					},
				},
			},
		},
	})
}
Beispiel #25
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "rack",
		Description: "manage your Convox rack",
		Usage:       "",
		Action:      cmdRack,
		Subcommands: []cli.Command{
			{
				Name:        "params",
				Description: "list advanced rack parameters",
				Usage:       "",
				Action:      cmdRackParams,
				Subcommands: []cli.Command{
					{
						Name:        "set",
						Description: "update advanced rack parameters",
						Usage:       "NAME=VALUE [NAME=VALUE]",
						Action:      cmdRackParamsSet,
						Flags:       []cli.Flag{appFlag},
					},
				},
			},
			{
				Name:        "scale",
				Description: "scale the rack capacity",
				Usage:       "",
				Action:      cmdRackScale,
				Flags: []cli.Flag{
					cli.IntFlag{
						Name:  "count",
						Usage: "horizontally scale the instance count, e.g. 3 or 10",
					},
					cli.StringFlag{
						Name:  "type",
						Usage: "vertically scale the instance type, e.g. t2.small or c3.xlarge",
					},
				},
			},
			{
				Name:        "update",
				Description: "update rack to the given version",
				Usage:       "[version]",
				Action:      cmdRackUpdate,
			},
			{
				Name:        "releases",
				Description: "list rack releases",
				Usage:       "",
				Action:      cmdRackReleases,
				Flags: []cli.Flag{
					cli.BoolFlag{
						Name:  "unpublished",
						Usage: "include unpublished versions",
					},
				},
			},
		},
	})
}
Beispiel #26
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "update",
		Description: "update the cli",
		Usage:       "",
		Action:      cmdUpdate,
	})
}
Beispiel #27
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "racks",
		Description: "list your Convox racks",
		Usage:       "",
		Action:      cmdRacks,
	})
}
Beispiel #28
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "switch",
		Description: "switch to another Convox rack",
		Usage:       "[rack name]",
		Action:      cmdSwitch,
	})
}
Beispiel #29
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "instances",
		Description: "list your Convox rack's instances",
		Usage:       "",
		Action:      cmdInstancesList,
	})
}
Beispiel #30
0
func init() {
	stdcli.RegisterCommand(cli.Command{
		Name:        "proxy",
		Description: "proxy local ports into a rack",
		Usage:       "<[port:]host:hostport> [[port:]host:hostport]...",
		Action:      cmdProxy,
	})
}