package internal import ( "context" "os" "coopcloud.tech/abra/pkg/log" "github.com/urfave/cli/v3" ) // Secrets stores the variable from SecretsFlag var Secrets bool // SecretsFlag turns on/off automatically generating secrets var SecretsFlag = &cli.BoolFlag{ Name: "secrets", Aliases: []string{"S"}, Usage: "Automatically generate secrets", Destination: &Secrets, } // Pass stores the variable from PassFlag var Pass bool // PassFlag turns on/off storing generated secrets in pass var PassFlag = &cli.BoolFlag{ Name: "pass", Aliases: []string{"p"}, Usage: "Store the generated secrets in a local pass store", Destination: &Pass, } // PassRemove stores the variable for PassRemoveFlag var PassRemove bool // PassRemoveFlag turns on/off removing generated secrets from pass var PassRemoveFlag = &cli.BoolFlag{ Name: "pass", Aliases: []string{"p"}, Usage: "Remove generated secrets from a local pass store", Destination: &PassRemove, } var File bool var FileFlag = &cli.BoolFlag{ Name: "file", Aliases: []string{"f"}, Usage: "Treat input as a file", Destination: &File, } var Trim bool var TrimFlag = &cli.BoolFlag{ Name: "trim", Aliases: []string{"t"}, Usage: "Trim input", Destination: &Trim, } // Force force functionality without asking. var Force bool // ForceFlag turns on/off force functionality. var ForceFlag = &cli.BoolFlag{ Name: "force", Aliases: []string{"f"}, Usage: "Perform action without further prompt. Use with care!", Destination: &Force, } // Chaos engages chaos mode. var Chaos bool // ChaosFlag turns on/off chaos functionality. var ChaosFlag = &cli.BoolFlag{ Name: "chaos", Aliases: []string{"C"}, Usage: "Proceed with uncommitted recipes changes. Use with care!", Destination: &Chaos, } // Disable tty to run commands from script var Tty bool // TtyFlag turns on/off tty mode. var TtyFlag = &cli.BoolFlag{ Name: "tty", Aliases: []string{"T"}, Usage: "Disables TTY mode to run this command from a script.", Destination: &Tty, } var NoInput bool var NoInputFlag = &cli.BoolFlag{ Name: "no-input", Aliases: []string{"n"}, Usage: "Toggle non-interactive mode", Destination: &NoInput, } // Debug stores the variable from DebugFlag. var Debug bool // DebugFlag turns on/off verbose logging down to the DEBUG level. var DebugFlag = &cli.BoolFlag{ Name: "debug", Aliases: []string{"d"}, Destination: &Debug, Persistent: true, Usage: "Show DEBUG messages", } // Offline stores the variable from OfflineFlag. var Offline bool // DebugFlag turns on/off offline mode. var OfflineFlag = &cli.BoolFlag{ Name: "offline", Aliases: []string{"o"}, Destination: &Offline, Usage: "Prefer offline & filesystem access when possible", } // ReleaseNotes stores the variable from ReleaseNotesFlag. var ReleaseNotes bool // ReleaseNotesFlag turns on/off printing only release notes when upgrading. var ReleaseNotesFlag = &cli.BoolFlag{ Name: "releasenotes", Aliases: []string{"r"}, Destination: &ReleaseNotes, Usage: "Only show release notes", } // MachineReadable stores the variable from MachineReadableFlag var MachineReadable bool // MachineReadableFlag turns on/off machine readable output where supported var MachineReadableFlag = &cli.BoolFlag{ Name: "machine", Aliases: []string{"m"}, Destination: &MachineReadable, Usage: "Output in a machine-readable format (where supported)", } // RC signifies the latest release candidate var RC bool // RCFlag chooses the latest release candidate for install var RCFlag = &cli.BoolFlag{ Name: "rc", Aliases: []string{"r"}, Destination: &RC, Usage: "Install the latest release candidate", } var Major bool var MajorFlag = &cli.BoolFlag{ Name: "major", Aliases: []string{"x"}, Usage: "Increase the major part of the version", Destination: &Major, } var Minor bool var MinorFlag = &cli.BoolFlag{ Name: "minor", Aliases: []string{"y"}, Usage: "Increase the minor part of the version", Destination: &Minor, } var Patch bool var PatchFlag = &cli.BoolFlag{ Name: "patch", Aliases: []string{"z"}, Usage: "Increase the patch part of the version", Destination: &Patch, } var Dry bool var DryFlag = &cli.BoolFlag{ Name: "dry-run", Aliases: []string{"r"}, Usage: "Only reports changes that would be made", Destination: &Dry, } var Publish bool var PublishFlag = &cli.BoolFlag{ Name: "publish", Aliases: []string{"p"}, Usage: "Publish changes to git.coopcloud.tech", Destination: &Publish, } var Domain string var DomainFlag = &cli.StringFlag{ Name: "domain", Aliases: []string{"D"}, Value: "", Usage: "Choose a domain name", Destination: &Domain, } var NewAppServer string var NewAppServerFlag = &cli.StringFlag{ Name: "server", Aliases: []string{"s"}, Value: "", Usage: "Show apps of a specific server", Destination: &NewAppServer, } var NoDomainChecks bool var NoDomainChecksFlag = &cli.BoolFlag{ Name: "no-domain-checks", Aliases: []string{"D"}, Usage: "Disable public DNS checks", Destination: &NoDomainChecks, } var StdErrOnly bool var StdErrOnlyFlag = &cli.BoolFlag{ Name: "stderr", Aliases: []string{"s"}, Usage: "Only tail stderr", Destination: &StdErrOnly, } var SinceLogs string var SinceLogsFlag = &cli.StringFlag{ Name: "since", Aliases: []string{"S"}, Value: "", Usage: "tail logs since YYYY-MM-DDTHH:MM:SSZ", Destination: &SinceLogs, } var DontWaitConverge bool var DontWaitConvergeFlag = &cli.BoolFlag{ Name: "no-converge-checks", Aliases: []string{"c"}, Usage: "Don't wait for converge logic checks", Destination: &DontWaitConverge, } var Watch bool var WatchFlag = &cli.BoolFlag{ Name: "watch", Aliases: []string{"w"}, Usage: "Watch status by polling repeatedly", Destination: &Watch, } var OnlyErrors bool var OnlyErrorFlag = &cli.BoolFlag{ Name: "errors", Aliases: []string{"e"}, Usage: "Only show errors", Destination: &OnlyErrors, } var SkipUpdates bool var SkipUpdatesFlag = &cli.BoolFlag{ Name: "skip-updates", Aliases: []string{"s"}, Usage: "Skip updating recipe repositories", Destination: &SkipUpdates, } var AllTags bool var AllTagsFlag = &cli.BoolFlag{ Name: "all-tags", Aliases: []string{"a"}, Usage: "List all tags, not just upgrades", Destination: &AllTags, } var LocalCmd bool var LocalCmdFlag = &cli.BoolFlag{ Name: "local", Aliases: []string{"l"}, Usage: "Run command locally", Destination: &LocalCmd, } var RemoteUser string var RemoteUserFlag = &cli.StringFlag{ Name: "user", Aliases: []string{"u"}, Value: "", Usage: "User to run command within a service context", Destination: &RemoteUser, } var GitName string var GitNameFlag = &cli.StringFlag{ Name: "git-name", Aliases: []string{"gn"}, Value: "", Usage: "Git (user) name to do commits with", Destination: &GitName, } var GitEmail string var GitEmailFlag = &cli.StringFlag{ Name: "git-email", Aliases: []string{"ge"}, Value: "", Usage: "Git email name to do commits with", Destination: &GitEmail, } var AllServices bool var AllServicesFlag = &cli.BoolFlag{ Name: "all-services", Aliases: []string{"a"}, Usage: "Restart all services", Destination: &AllServices, } // SubCommandBefore wires up pre-action machinery (e.g. --debug handling). func SubCommandBefore(ctx context.Context, cmd *cli.Command) error { if Debug { log.SetLevel(log.DebugLevel) log.SetOutput(os.Stderr) log.SetReportCaller(true) } return nil }