package app

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

var appDeployCommand = &cli.Command{
	Name:    "deploy",
	Aliases: []string{"d"},
	Usage:   "Deploy an app",
	Flags: []cli.Flag{
		internal.ForceFlag,
		internal.ChaosFlag,
		internal.NoDomainChecksFlag,
		internal.DontWaitConvergeFlag,
	},
	Description: `
This command deploys a new instance of an app. It does not support changing the
version of an existing deployed app, for this you need to look at the "abra app
upgrade <app>" 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,
}