package app

import (
	"coopcloud.tech/abra/cli/internal"
	"coopcloud.tech/abra/pkg/autocomplete"
	"github.com/urfave/cli"
)

var appDeployCommand = cli.Command{
	Name:      "deploy",
	Aliases:   []string{"d"},
	Usage:     "Deploy an app",
	ArgsUsage: "<domain>",
	Flags: []cli.Flag{
		internal.DebugFlag,
		internal.NoInputFlag,
		internal.ForceFlag,
		internal.ChaosFlag,
		internal.NoDomainChecksFlag,
		internal.DontWaitConvergeFlag,
	},
	Before: internal.SubCommandBefore,
	Description: `
Deploy an app. It does not support incrementing the version of a deployed app,
for this you need to look at the "abra app upgrade <domain>" command.

You may pass "--force" to re-deploy the same version again. This can be useful
if the container runtime has gotten into a weird state.

Chas mode ("--chaos") will deploy your local checkout of a recipe as-is,
including unstaged changes and can be useful for live hacking and testing new
recipes.
`,
	Action:       internal.DeployAction,
	BashComplete: autocomplete.AppNameComplete,
}