forked from toolshed/abra
		
	Appease formatter (kinda weird?)
This commit is contained in:
		@ -10,5 +10,5 @@ var AppCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("app [cmd] [args] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("a")},
 | 
			
		||||
	// translators: Short description for `app` command group
 | 
			
		||||
	Short:   i18n.G("Manage apps"),
 | 
			
		||||
	Short: i18n.G("Manage apps"),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -16,8 +16,8 @@ var AppBackupListCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("list <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
	// translators: Short description for `app backup list` command
 | 
			
		||||
	Short:   i18n.G("List the contents of a snapshot"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("List the contents of a snapshot"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
@ -68,7 +68,7 @@ var AppBackupDownloadCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("download <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("d")},
 | 
			
		||||
	// translators: Short description for `app backup download` command
 | 
			
		||||
	Short:   i18n.G("Download a snapshot"),
 | 
			
		||||
	Short: i18n.G("Download a snapshot"),
 | 
			
		||||
	Long: i18n.G(`Downloads a backup.tar.gz to the current working directory.
 | 
			
		||||
 | 
			
		||||
"--volumes/-v" includes data contained in volumes alongide paths specified in
 | 
			
		||||
@ -139,8 +139,8 @@ var AppBackupCreateCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("create <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("c")},
 | 
			
		||||
	// translators: Short description for `app backup create` command
 | 
			
		||||
	Short:   i18n.G("Create a new snapshot"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("Create a new snapshot"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
@ -185,8 +185,8 @@ var AppBackupSnapshotsCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("snapshots <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("s")},
 | 
			
		||||
	// translators: Short description for `app backup snapshots` command
 | 
			
		||||
	Short:   i18n.G("List all snapshots"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("List all snapshots"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
@ -222,7 +222,7 @@ var AppBackupCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("backup [cmd] [args] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("b")},
 | 
			
		||||
	// translators: Short description for `app backup` command group
 | 
			
		||||
	Short:   i18n.G("Manage app backups"),
 | 
			
		||||
	Short: i18n.G("Manage app backups"),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ var AppCheckCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("check <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("chk")},
 | 
			
		||||
	// translators: Short description for `app check` command
 | 
			
		||||
	Short:   i18n.G("Ensure an app is well configured"),
 | 
			
		||||
	Short: i18n.G("Ensure an app is well configured"),
 | 
			
		||||
	Long: i18n.G(`Compare env vars in both the app ".env" and recipe ".env.sample" file.
 | 
			
		||||
 | 
			
		||||
The goal is to ensure that recipe ".env.sample" env vars are defined in your
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ var AppCmdCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("command <domain> [service | --local] <cmd> [[args] [flags] | [flags] -- [args]]"),
 | 
			
		||||
	Aliases: []string{i18n.G("cmd")},
 | 
			
		||||
	// translators: Short description for `app cmd` command
 | 
			
		||||
	Short:   i18n.G("Run app commands"),
 | 
			
		||||
	Short: i18n.G("Run app commands"),
 | 
			
		||||
	Long: i18n.G(`Run an app specific command.
 | 
			
		||||
 | 
			
		||||
These commands are bash functions, defined in the abra.sh of the recipe itself.
 | 
			
		||||
@ -199,8 +199,8 @@ var AppCmdListCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("list <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
	// translators: Short description for `app cmd list` command
 | 
			
		||||
	Short:   i18n.G("List all available commands"),
 | 
			
		||||
	Args:    cobra.MinimumNArgs(1),
 | 
			
		||||
	Short: i18n.G("List all available commands"),
 | 
			
		||||
	Args:  cobra.MinimumNArgs(1),
 | 
			
		||||
	Run: func(cmd *cobra.Command, args []string) {
 | 
			
		||||
		app := internal.ValidateApp(args)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ var AppCpCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("cp <domain> <src> <dst> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("c")},
 | 
			
		||||
	// translators: Short description for `app cp` command
 | 
			
		||||
	Short:   i18n.G("Copy files to/from a deployed app service"),
 | 
			
		||||
	Short: i18n.G("Copy files to/from a deployed app service"),
 | 
			
		||||
	Example: i18n.G(`  # copy myfile.txt to the root of the app service
 | 
			
		||||
  abra app cp 1312.net myfile.txt app:/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -29,7 +29,7 @@ var AppDeployCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("deploy <domain> [version] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("d")},
 | 
			
		||||
	// translators: Short description for `app deploy` command
 | 
			
		||||
	Short:   i18n.G("Deploy an app"),
 | 
			
		||||
	Short: i18n.G("Deploy an app"),
 | 
			
		||||
	Long: i18n.G(`Deploy an app.
 | 
			
		||||
 | 
			
		||||
This command supports chaos operations. Use "--chaos/-C" to deploy your recipe
 | 
			
		||||
 | 
			
		||||
@ -44,7 +44,7 @@ var AppListCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("list [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
	// translators: Short description for `app list` command
 | 
			
		||||
	Short:   i18n.G("List all managed apps"),
 | 
			
		||||
	Short: i18n.G("List all managed apps"),
 | 
			
		||||
	Long: i18n.G(`Generate a report of all managed apps.
 | 
			
		||||
 | 
			
		||||
Use "--status/-S" flag to query all servers for the live deployment status.`),
 | 
			
		||||
 | 
			
		||||
@ -19,8 +19,8 @@ var AppLogsCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("logs <domain> [service] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("l")},
 | 
			
		||||
	// translators: Short description for `app logs` command
 | 
			
		||||
	Short:   i18n.G("Tail app logs"),
 | 
			
		||||
	Args:    cobra.RangeArgs(1, 2),
 | 
			
		||||
	Short: i18n.G("Tail app logs"),
 | 
			
		||||
	Args:  cobra.RangeArgs(1, 2),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -47,9 +47,9 @@ var AppNewCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("new [recipe] [version] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("n")},
 | 
			
		||||
	// translators: Short description for `app new` command
 | 
			
		||||
	Short:   i18n.G("Create a new app"),
 | 
			
		||||
	Long:    appNewDescription,
 | 
			
		||||
	Args:    cobra.RangeArgs(0, 2),
 | 
			
		||||
	Short: i18n.G("Create a new app"),
 | 
			
		||||
	Long:  appNewDescription,
 | 
			
		||||
	Args:  cobra.RangeArgs(0, 2),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -29,8 +29,8 @@ var AppPsCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("ps <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("p")},
 | 
			
		||||
	// translators: Short description for `app ps` command
 | 
			
		||||
	Short:   i18n.G("Check app deployment status"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("Check app deployment status"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -20,7 +20,7 @@ var AppRemoveCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("remove <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rm")},
 | 
			
		||||
	// translators: Short description for `app remove` command
 | 
			
		||||
	Short:   i18n.G("Remove all app data, locally and remotely"),
 | 
			
		||||
	Short: i18n.G("Remove all app data, locally and remotely"),
 | 
			
		||||
	Long: i18n.G(`Remove everything related to an app which is already undeployed.
 | 
			
		||||
 | 
			
		||||
By default, it will prompt for confirmation before proceeding. All secrets,
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ var AppRestartCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("restart <domain> [[service] | --all-services] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("re")},
 | 
			
		||||
	// translators: Short description for `app restart` command
 | 
			
		||||
	Short:   i18n.G("Restart an app"),
 | 
			
		||||
	Short: i18n.G("Restart an app"),
 | 
			
		||||
	Long: i18n.G(`This command restarts services within a deployed app.
 | 
			
		||||
 | 
			
		||||
Run "abra app ps <domain>" to see a list of service names.
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@ var AppRestoreCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("restore <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rs")},
 | 
			
		||||
	// translators: Short description for `app restore` command
 | 
			
		||||
	Short:   i18n.G("Restore a snapshot"),
 | 
			
		||||
	Short: i18n.G("Restore a snapshot"),
 | 
			
		||||
	Long: i18n.G(`Snapshots are restored while apps are deployed.
 | 
			
		||||
 | 
			
		||||
Some restore scenarios may require service / app restarts.`),
 | 
			
		||||
 | 
			
		||||
@ -26,7 +26,7 @@ var AppRollbackCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("rollback <domain> [version] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rl")},
 | 
			
		||||
	// translators: Short description for `app rollback` command
 | 
			
		||||
	Short:   i18n.G("Roll an app back to a previous version"),
 | 
			
		||||
	Short: i18n.G("Roll an app back to a previous version"),
 | 
			
		||||
	Long: i18n.G(`This command rolls an app back to a previous version.
 | 
			
		||||
 | 
			
		||||
Unlike "abra app deploy", chaos operations are not supported here. Only recipe
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ var AppRunCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("run <domain> <service> <cmd> [[args] [flags] | [flags] -- [args]]"),
 | 
			
		||||
	Aliases: []string{i18n.G("r")},
 | 
			
		||||
	// translators: Short description for `app run` command
 | 
			
		||||
	Short:   i18n.G("Run a command inside a service container"),
 | 
			
		||||
	Short: i18n.G("Run a command inside a service container"),
 | 
			
		||||
	Example: i18n.G(`  # run <cmd> with args/flags
 | 
			
		||||
  abra app run 1312.net app -- ls -lha
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -29,8 +29,8 @@ var AppSecretGenerateCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("generate <domain> [[secret] [version] | --all] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("g")},
 | 
			
		||||
	// translators: Short description for `app secret generate` command
 | 
			
		||||
	Short:   i18n.G("Generate secrets"),
 | 
			
		||||
	Args:    cobra.RangeArgs(1, 3),
 | 
			
		||||
	Short: i18n.G("Generate secrets"),
 | 
			
		||||
	Args:  cobra.RangeArgs(1, 3),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
@ -151,7 +151,7 @@ var AppSecretInsertCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("insert <domain> <secret> <version> [<data>] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("i")},
 | 
			
		||||
	// translators: Short description for `app secret insert` command
 | 
			
		||||
	Short:   i18n.G("Insert secret"),
 | 
			
		||||
	Short: i18n.G("Insert secret"),
 | 
			
		||||
	Long: i18n.G(`This command inserts a secret into an app environment.
 | 
			
		||||
 | 
			
		||||
Arbitrary secret insertion is not supported. Secrets that are inserted must
 | 
			
		||||
@ -326,7 +326,7 @@ var AppSecretRmCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("remove <domain> [[secret] | --all] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rm")},
 | 
			
		||||
	// translators: Short description for `app secret remove` command
 | 
			
		||||
	Short:   i18n.G("Remove a secret"),
 | 
			
		||||
	Short: i18n.G("Remove a secret"),
 | 
			
		||||
	Long: i18n.G(`This command removes a secret from an app environment.
 | 
			
		||||
 | 
			
		||||
Arbitrary secret removal is not supported. Secrets that are removed must
 | 
			
		||||
@ -441,8 +441,8 @@ var AppSecretLsCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("list <domain>"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
	// translators: Short description for `app secret list` command
 | 
			
		||||
	Short:   i18n.G("List all secrets"),
 | 
			
		||||
	Args:    cobra.MinimumNArgs(1),
 | 
			
		||||
	Short: i18n.G("List all secrets"),
 | 
			
		||||
	Args:  cobra.MinimumNArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
@ -518,7 +518,7 @@ var AppSecretCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("secret [cmd] [args] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("s")},
 | 
			
		||||
	// translators: Short description for `app secret` command group
 | 
			
		||||
	Short:   i18n.G("Manage app secrets"),
 | 
			
		||||
	Short: i18n.G("Manage app secrets"),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 | 
			
		||||
@ -22,8 +22,8 @@ var AppServicesCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("services <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("sr")},
 | 
			
		||||
	// translators: Short description for `app services` command
 | 
			
		||||
	Short:   i18n.G("Display all services of an app"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("Display all services of an app"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ var AppUndeployCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("undeploy <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("un")},
 | 
			
		||||
	// translators: Short description for `app undeploy` command
 | 
			
		||||
	Short:   i18n.G("Undeploy an app"),
 | 
			
		||||
	Short: i18n.G("Undeploy an app"),
 | 
			
		||||
	Long: i18n.G(`This does not destroy any application data.
 | 
			
		||||
 | 
			
		||||
However, you should remain vigilant, as your swarm installation will consider
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ var AppUpgradeCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("upgrade <domain> [version] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("up")},
 | 
			
		||||
	// translators: Short description for `app upgrade` command
 | 
			
		||||
	Short:   i18n.G("Upgrade an app"),
 | 
			
		||||
	Short: i18n.G("Upgrade an app"),
 | 
			
		||||
	Long: i18n.G(`Upgrade an app.
 | 
			
		||||
 | 
			
		||||
Unlike "abra app deploy", chaos operations are not supported here. Only recipe
 | 
			
		||||
 | 
			
		||||
@ -20,8 +20,8 @@ var AppVolumeListCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("list <domain> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
	// translators: Short description for `app list` command
 | 
			
		||||
	Short:   i18n.G("List volumes associated with an app"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("List volumes associated with an app"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
@ -76,7 +76,7 @@ var AppVolumeListCommand = &cobra.Command{
 | 
			
		||||
 | 
			
		||||
var AppVolumeRemoveCommand = &cobra.Command{
 | 
			
		||||
	// translators: `app volume remove` command
 | 
			
		||||
	Use:   i18n.G("remove <domain> [volume] [flags]"),
 | 
			
		||||
	Use: i18n.G("remove <domain> [volume] [flags]"),
 | 
			
		||||
	// translators: Short description for `app volume remove` command
 | 
			
		||||
	Short: i18n.G("Remove volume(s) associated with an app"),
 | 
			
		||||
	Long: i18n.G(`Remove volumes associated with an app.
 | 
			
		||||
 | 
			
		||||
@ -26,8 +26,8 @@ var CatalogueSyncCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("sync [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("g")},
 | 
			
		||||
	// translators: Short description for `catalogue sync` command
 | 
			
		||||
	Short:   i18n.G("Sync recipe catalogue for latest changes"),
 | 
			
		||||
	Args:    cobra.NoArgs,
 | 
			
		||||
	Short: i18n.G("Sync recipe catalogue for latest changes"),
 | 
			
		||||
	Args:  cobra.NoArgs,
 | 
			
		||||
	Run: func(cmd *cobra.Command, args []string) {
 | 
			
		||||
		if err := catalogue.EnsureCatalogue(); err != nil {
 | 
			
		||||
			log.Fatal(err)
 | 
			
		||||
@ -46,7 +46,7 @@ var CatalogueGenerateCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("generate [recipe] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("g")},
 | 
			
		||||
	// translators: Short description for `catalogue generate` command
 | 
			
		||||
	Short:   i18n.G("Generate the recipe catalogue"),
 | 
			
		||||
	Short: i18n.G("Generate the recipe catalogue"),
 | 
			
		||||
	Long: i18n.G(`Generate a new copy of the recipe catalogue.
 | 
			
		||||
 | 
			
		||||
N.B. this command **will** wipe local unstaged changes from your local recipes
 | 
			
		||||
@ -267,7 +267,7 @@ your private key and enter your passphrase beforehand.
 | 
			
		||||
// CatalogueCommand defines the `abra catalogue` command and sub-commands.
 | 
			
		||||
var CatalogueCommand = &cobra.Command{
 | 
			
		||||
	// translators: `catalogue` command group
 | 
			
		||||
	Use:     i18n.G("catalogue [cmd] [args] [flags]"),
 | 
			
		||||
	Use: i18n.G("catalogue [cmd] [args] [flags]"),
 | 
			
		||||
	// translators: Short description for `catalogue` command group
 | 
			
		||||
	Short:   i18n.G("Manage the recipe catalogue"),
 | 
			
		||||
	Aliases: []string{"c"},
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ import (
 | 
			
		||||
 | 
			
		||||
var AutocompleteCommand = &cobra.Command{
 | 
			
		||||
	// translators: `autocomplete` command
 | 
			
		||||
	Use:   i18n.G("autocomplete [bash|zsh|fish|powershell]"),
 | 
			
		||||
	Use: i18n.G("autocomplete [bash|zsh|fish|powershell]"),
 | 
			
		||||
	// translators: Short description for `autocomplete` command
 | 
			
		||||
	Short: i18n.G("Generate autocompletion script"),
 | 
			
		||||
	Long: i18n.G(`To load completions:
 | 
			
		||||
 | 
			
		||||
@ -14,9 +14,9 @@ var RecipeDiffCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("diff <recipe> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("d")},
 | 
			
		||||
	// translators: Short description for `recipe diff` command
 | 
			
		||||
	Short:   i18n.G("Show unstaged changes in recipe config"),
 | 
			
		||||
	Long:    i18n.G("This command requires /usr/bin/git."),
 | 
			
		||||
	Args:    cobra.MinimumNArgs(1),
 | 
			
		||||
	Short: i18n.G("Show unstaged changes in recipe config"),
 | 
			
		||||
	Long:  i18n.G("This command requires /usr/bin/git."),
 | 
			
		||||
	Args:  cobra.MinimumNArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -19,9 +19,9 @@ var RecipeFetchCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("fetch [recipe | --all] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("f")},
 | 
			
		||||
	// translators: Short description for `recipe fetch` command
 | 
			
		||||
	Short:   i18n.G("Clone recipe(s) locally"),
 | 
			
		||||
	Long:    i18n.G(`Using "--force/-f" Git syncs an existing recipe. It does not erase unstaged changes.`),
 | 
			
		||||
	Args:    cobra.RangeArgs(0, 1),
 | 
			
		||||
	Short: i18n.G("Clone recipe(s) locally"),
 | 
			
		||||
	Long:  i18n.G(`Using "--force/-f" Git syncs an existing recipe. It does not erase unstaged changes.`),
 | 
			
		||||
	Args:  cobra.RangeArgs(0, 1),
 | 
			
		||||
	Example: i18n.G(`  # fetch from recipe catalogue
 | 
			
		||||
  abra recipe fetch gitea
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,7 +12,7 @@ import (
 | 
			
		||||
 | 
			
		||||
var RecipeLintCommand = &cobra.Command{
 | 
			
		||||
	// translators: `recipe lint` command
 | 
			
		||||
	Use:     i18n.G("lint <recipe> [flags]"),
 | 
			
		||||
	Use: i18n.G("lint <recipe> [flags]"),
 | 
			
		||||
	// translators: Short description for `recipe lint` command
 | 
			
		||||
	Short:   i18n.G("Lint a recipe"),
 | 
			
		||||
	Aliases: []string{i18n.G("l")},
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ import (
 | 
			
		||||
 | 
			
		||||
var RecipeListCommand = &cobra.Command{
 | 
			
		||||
	// translators: `recipe list` command
 | 
			
		||||
	Use:     i18n.G("list"),
 | 
			
		||||
	Use: i18n.G("list"),
 | 
			
		||||
	// translators: Short description for `recipe list` command
 | 
			
		||||
	Short:   i18n.G("List recipes"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ var RecipeCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("recipe [cmd] [args] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("r")},
 | 
			
		||||
	// translators: Short description for `recipe` command group
 | 
			
		||||
	Short:   i18n.G("Manage recipes"),
 | 
			
		||||
	Short: i18n.G("Manage recipes"),
 | 
			
		||||
	Long: i18n.G(`A recipe is a blueprint for an app.
 | 
			
		||||
 | 
			
		||||
It is a bunch of config files which describe how to deploy and maintain an app.
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@ var RecipeReleaseCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("release <recipe> [version] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rl")},
 | 
			
		||||
	// translators: Short description for `recipe release` command
 | 
			
		||||
	Short:   i18n.G("Release a new recipe version"),
 | 
			
		||||
	Short: i18n.G("Release a new recipe version"),
 | 
			
		||||
	Long: i18n.G(`Create a new version of a recipe.
 | 
			
		||||
 | 
			
		||||
These versions are then published on the Co-op Cloud recipe catalogue. These
 | 
			
		||||
 | 
			
		||||
@ -14,9 +14,9 @@ var RecipeResetCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("reset <recipe> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rs")},
 | 
			
		||||
	// translators: Short description for `recipe reset` command
 | 
			
		||||
	Short:   i18n.G("Remove all unstaged changes from recipe config"),
 | 
			
		||||
	Long:    i18n.G("WARNING: this will delete your changes. Be Careful."),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("Remove all unstaged changes from recipe config"),
 | 
			
		||||
	Long:  i18n.G("WARNING: this will delete your changes. Be Careful."),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -23,7 +23,7 @@ var RecipeSyncCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("sync <recipe> [version] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("s")},
 | 
			
		||||
	// translators: Short description for `recipe sync` command
 | 
			
		||||
	Short:   i18n.G("Sync recipe version label"),
 | 
			
		||||
	Short: i18n.G("Sync recipe version label"),
 | 
			
		||||
	Long: i18n.G(`Generate labels for the main recipe service.
 | 
			
		||||
 | 
			
		||||
By convention, the service named "app" using the following format:
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,7 @@ var RecipeUpgradeCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("upgrade <recipe> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("u")},
 | 
			
		||||
	// translators: Short description for `recipe upgrade` command
 | 
			
		||||
	Short:   i18n.G("Upgrade recipe image tags"),
 | 
			
		||||
	Short: i18n.G("Upgrade recipe image tags"),
 | 
			
		||||
	Long: i18n.G(`Upgrade a given <recipe> configuration.
 | 
			
		||||
 | 
			
		||||
It will update the relevant compose file tags on the local file system.
 | 
			
		||||
 | 
			
		||||
@ -18,8 +18,8 @@ var RecipeVersionCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("versions <recipe> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("v")},
 | 
			
		||||
	// translators: Short description for `recipe versions` command
 | 
			
		||||
	Short:   i18n.G("List recipe versions"),
 | 
			
		||||
	Args:    cobra.ExactArgs(1),
 | 
			
		||||
	Short: i18n.G("List recipe versions"),
 | 
			
		||||
	Args:  cobra.ExactArgs(1),
 | 
			
		||||
	ValidArgsFunction: func(
 | 
			
		||||
		cmd *cobra.Command,
 | 
			
		||||
		args []string,
 | 
			
		||||
 | 
			
		||||
@ -22,7 +22,7 @@ import (
 | 
			
		||||
func Run(version, commit string) {
 | 
			
		||||
	rootCmd := &cobra.Command{
 | 
			
		||||
		// translators: `abra` binary name
 | 
			
		||||
		Use:     i18n.G("abra [cmd] [args] [flags]"),
 | 
			
		||||
		Use: i18n.G("abra [cmd] [args] [flags]"),
 | 
			
		||||
		// translators: Short description for `abra` binary
 | 
			
		||||
		Short:   i18n.G("The Co-op Cloud command-line utility belt 🎩🐇"),
 | 
			
		||||
		Version: fmt.Sprintf("%s-%s", version, commit[:7]),
 | 
			
		||||
@ -84,7 +84,7 @@ func Run(version, commit string) {
 | 
			
		||||
		Use:     i18n.G("man [flags]"),
 | 
			
		||||
		Aliases: []string{"m"},
 | 
			
		||||
		// translators: Short description for `man` command
 | 
			
		||||
		Short:   i18n.G("Generate manpage"),
 | 
			
		||||
		Short: i18n.G("Generate manpage"),
 | 
			
		||||
		Example: i18n.G(`  # generate the man pages into /usr/local/share/man/man1
 | 
			
		||||
  abra_path=$(which abra)  # pass abra absolute path to sudo below
 | 
			
		||||
  sudo $abra_path man
 | 
			
		||||
 | 
			
		||||
@ -21,8 +21,8 @@ var ServerAddCommand = &cobra.Command{
 | 
			
		||||
	// translators: `server add` command
 | 
			
		||||
	Use:     i18n.G("add [[server] | --local] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("a")},
 | 
			
		||||
		// translators: Short description for `server add` command
 | 
			
		||||
	Short:   i18n.G("Add a new server"),
 | 
			
		||||
	// translators: Short description for `server add` command
 | 
			
		||||
	Short: i18n.G("Add a new server"),
 | 
			
		||||
	Long: i18n.G(`Add a new server to your configuration so that it can be managed by Abra.
 | 
			
		||||
 | 
			
		||||
Abra relies on the standard SSH command-line and ~/.ssh/config for client
 | 
			
		||||
 | 
			
		||||
@ -18,9 +18,9 @@ var ServerListCommand = &cobra.Command{
 | 
			
		||||
	// translators: `server list` command
 | 
			
		||||
	Use:     i18n.G("list [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("ls")},
 | 
			
		||||
		// translators: Short description for `server list` command
 | 
			
		||||
	Short:   i18n.G("List managed servers"),
 | 
			
		||||
	Args:    cobra.NoArgs,
 | 
			
		||||
	// translators: Short description for `server list` command
 | 
			
		||||
	Short: i18n.G("List managed servers"),
 | 
			
		||||
	Args:  cobra.NoArgs,
 | 
			
		||||
	Run: func(cmd *cobra.Command, args []string) {
 | 
			
		||||
		dockerContextStore := contextPkg.NewDefaultDockerContextStore()
 | 
			
		||||
		contexts, err := dockerContextStore.Store.List()
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,7 @@ var ServerPruneCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("prune <server> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("p")},
 | 
			
		||||
	// translators: Short description for `server prune` command
 | 
			
		||||
	Short:   i18n.G("Prune resources on a server"),
 | 
			
		||||
	Short: i18n.G("Prune resources on a server"),
 | 
			
		||||
	Long: i18n.G(`Prunes unused containers, networks, and dangling images.
 | 
			
		||||
 | 
			
		||||
Use "--volumes/-v" to remove volumes that are not associated with a deployed
 | 
			
		||||
 | 
			
		||||
@ -18,7 +18,7 @@ var ServerRemoveCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("remove <server> [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("rm")},
 | 
			
		||||
	// translators: Short description for `server remove` command
 | 
			
		||||
	Short:   i18n.G("Remove a managed server"),
 | 
			
		||||
	Short: i18n.G("Remove a managed server"),
 | 
			
		||||
	Long: i18n.G(`Remove a managed server.
 | 
			
		||||
 | 
			
		||||
Abra will remove the internal bookkeeping ($ABRA_DIR/servers/...) and
 | 
			
		||||
 | 
			
		||||
@ -11,5 +11,5 @@ var ServerCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("server [cmd] [args] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("s")},
 | 
			
		||||
	// translators: Short description for `server` command group
 | 
			
		||||
	Short:   i18n.G("Manage servers"),
 | 
			
		||||
	Short: i18n.G("Manage servers"),
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,7 @@ var NotifyCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("notify [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("n")},
 | 
			
		||||
	// translators: Short description for `notify` command
 | 
			
		||||
	Short:   i18n.G("Check for available upgrades"),
 | 
			
		||||
	Short: i18n.G("Check for available upgrades"),
 | 
			
		||||
	Long: i18n.G(`Notify on new versions for deployed apps.
 | 
			
		||||
 | 
			
		||||
If a new patch/minor version is available, a notification is printed.
 | 
			
		||||
@ -77,7 +77,7 @@ var UpgradeCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("upgrade [[stack] [recipe] | --all] [flags]"),
 | 
			
		||||
	Aliases: []string{i18n.G("u")},
 | 
			
		||||
	// translators: Short description for `app upgrade` command
 | 
			
		||||
	Short:   i18n.G("Upgrade apps"),
 | 
			
		||||
	Short: i18n.G("Upgrade apps"),
 | 
			
		||||
	Long: i18n.G(`Upgrade an app by specifying stack name and recipe. 
 | 
			
		||||
 | 
			
		||||
Use "--all" to upgrade every deployed app.
 | 
			
		||||
@ -476,7 +476,7 @@ func newKadabraApp(version, commit string) *cobra.Command {
 | 
			
		||||
		Use:     i18n.G("kadabra [cmd] [flags]"),
 | 
			
		||||
		Version: fmt.Sprintf("%s-%s", version, commit[:7]),
 | 
			
		||||
		// translators: Short description for `kababra` binary
 | 
			
		||||
		Short:   i18n.G("The Co-op Cloud auto-updater 🤖 🚀"),
 | 
			
		||||
		Short: i18n.G("The Co-op Cloud auto-updater 🤖 🚀"),
 | 
			
		||||
		PersistentPreRun: func(cmd *cobra.Command, args []string) {
 | 
			
		||||
			log.Logger.SetStyles(charmLog.DefaultStyles())
 | 
			
		||||
			charmLog.SetDefault(log.Logger)
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,7 @@ var UpgradeCommand = &cobra.Command{
 | 
			
		||||
	Use:     i18n.G("upgrade [flags]"),
 | 
			
		||||
	Aliases: []string{"u"},
 | 
			
		||||
	// translators: Short description for `upgrade` command
 | 
			
		||||
	Short:   i18n.G("Upgrade abra"),
 | 
			
		||||
	Short: i18n.G("Upgrade abra"),
 | 
			
		||||
	Long: i18n.G(`Upgrade abra in-place with the latest stable or release candidate.
 | 
			
		||||
 | 
			
		||||
By default, the latest stable release is downloaded.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user