refactor: persistent offline/noinput

This commit is contained in:
decentral1se 2024-07-10 11:45:21 +02:00
parent edb542c653
commit c3f0d15920
Signed by: decentral1se
GPG Key ID: 03789458B3D0C410
31 changed files with 26 additions and 80 deletions

View File

@ -39,7 +39,6 @@ var appBackupListCommand = cli.Command{
Name: "list", Name: "list",
Aliases: []string{"ls"}, Aliases: []string{"ls"},
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
snapshotFlag, snapshotFlag,
includePathFlag, includePathFlag,
}, },
@ -88,7 +87,6 @@ var appBackupDownloadCommand = cli.Command{
Name: "download", Name: "download",
Aliases: []string{"d"}, Aliases: []string{"d"},
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
snapshotFlag, snapshotFlag,
includePathFlag, includePathFlag,
}, },
@ -161,7 +159,6 @@ var appBackupCreateCommand = cli.Command{
Name: "create", Name: "create",
Aliases: []string{"c"}, Aliases: []string{"c"},
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
resticRepoFlag, resticRepoFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
@ -221,7 +218,6 @@ var appBackupSnapshotsCommand = cli.Command{
Name: "snapshots", Name: "snapshots",
Aliases: []string{"s"}, Aliases: []string{"s"},
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
snapshotFlag, snapshotFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -37,7 +37,6 @@ using the "-- <cmd-args>" syntax.
internal.LocalCmdFlag, internal.LocalCmdFlag,
internal.RemoteUserFlag, internal.RemoteUserFlag,
internal.TtyFlag, internal.TtyFlag,
internal.OfflineFlag,
internal.ChaosFlag, internal.ChaosFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
@ -202,7 +201,6 @@ var appCmdListCommand = cli.Command{
UsageText: "abra app cmd ls [options] <domain>", UsageText: "abra app cmd ls [options] <domain>",
HideHelpCommand: true, HideHelpCommand: true,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
internal.ChaosFlag, internal.ChaosFlag,
}, },
EnableShellCompletion: true, EnableShellCompletion: true,

View File

@ -30,11 +30,8 @@ var appCpCommand = cli.Command{
Aliases: []string{"c"}, Aliases: []string{"c"},
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra app cp [options] <domain> <src> <dst>", UsageText: "abra app cp [options] <domain> <src> <dst>",
Flags: []cli.Flag{ Before: internal.SubCommandBefore,
internal.NoInputFlag, Usage: "Copy files to/from a deployed app service",
},
Before: internal.SubCommandBefore,
Usage: "Copy files to/from a deployed app service",
Description: `Copy files to and from any app service file system. Description: `Copy files to and from any app service file system.
If you want to copy a myfile.txt to the root of the app service: If you want to copy a myfile.txt to the root of the app service:

View File

@ -26,12 +26,10 @@ var appDeployCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra app deploy [options] <domain> [<version>]", UsageText: "abra app deploy [options] <domain> [<version>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.ForceFlag, internal.ForceFlag,
internal.ChaosFlag, internal.ChaosFlag,
internal.NoDomainChecksFlag, internal.NoDomainChecksFlag,
internal.DontWaitConvergeFlag, internal.DontWaitConvergeFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Description: `Deploy an app. Description: `Deploy an app.

View File

@ -86,7 +86,6 @@ can take some time.`,
statusFlag, statusFlag,
listAppServerFlag, listAppServerFlag,
recipeFlag, recipeFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Action: func(ctx context.Context, cmd *cli.Command) error { Action: func(ctx context.Context, cmd *cli.Command) error {

View File

@ -45,12 +45,10 @@ var appNewCommand = cli.Command{
Usage: "Create a new app", Usage: "Create a new app",
Description: appNewDescription, Description: appNewDescription,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.NewAppServerFlag, internal.NewAppServerFlag,
internal.DomainFlag, internal.DomainFlag,
internal.PassFlag, internal.PassFlag,
internal.SecretsFlag, internal.SecretsFlag,
internal.OfflineFlag,
internal.ChaosFlag, internal.ChaosFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -39,8 +39,6 @@ To delete everything without prompt, use the "--force/-f" or the "--no-input/n"
flag.`, flag.`,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.ForceFlag, internal.ForceFlag,
internal.NoInputFlag,
internal.OfflineFlag,
}, },
EnableShellCompletion: true, EnableShellCompletion: true,
ShellComplete: autocomplete.AppNameComplete, ShellComplete: autocomplete.AppNameComplete,

View File

@ -22,7 +22,6 @@ var appRestartCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra app restart [options] <domain> [<service>]", UsageText: "abra app restart [options] <domain> [<service>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
internal.AllServicesFlag, internal.AllServicesFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -26,7 +26,6 @@ var appRestoreCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra app restore [options] <domain> <service>", UsageText: "abra app restore [options] <domain> <service>",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
targetPathFlag, targetPathFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -25,11 +25,9 @@ var appRollbackCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra app rollback [options] <domain> [<version>]", UsageText: "abra app rollback [options] <domain> [<version>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.ForceFlag, internal.ForceFlag,
internal.NoDomainChecksFlag, internal.NoDomainChecksFlag,
internal.DontWaitConvergeFlag, internal.DontWaitConvergeFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Description: `This command rolls an app back to a previous version. Description: `This command rolls an app back to a previous version.

View File

@ -50,7 +50,6 @@ var appSecretGenerateCommand = cli.Command{
allSecretsFlag, allSecretsFlag,
internal.PassFlag, internal.PassFlag,
internal.MachineReadableFlag, internal.MachineReadableFlag,
internal.OfflineFlag,
internal.ChaosFlag, internal.ChaosFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -67,7 +67,6 @@ var appUndeployCommand = cli.Command{
UsageText: "abra app undeploy [options] <domain>", UsageText: "abra app undeploy [options] <domain>",
HideHelpCommand: true, HideHelpCommand: true,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
pruneFlag, pruneFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -23,11 +23,9 @@ var appUpgradeCommand = cli.Command{
Usage: "Upgrade an app", Usage: "Upgrade an app",
UsageText: "abra app upgrade [options] <domain> [<version>]", UsageText: "abra app upgrade [options] <domain> [<version>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.ForceFlag, internal.ForceFlag,
internal.NoDomainChecksFlag, internal.NoDomainChecksFlag,
internal.DontWaitConvergeFlag, internal.DontWaitConvergeFlag,
internal.OfflineFlag,
internal.ReleaseNotesFlag, internal.ReleaseNotesFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -14,12 +14,9 @@ import (
) )
var appVolumeListCommand = cli.Command{ var appVolumeListCommand = cli.Command{
Name: "list", Name: "list",
Aliases: []string{"ls"}, Aliases: []string{"ls"},
UsageText: "abra app volume list [options] <domain>", UsageText: "abra app volume list [options] <domain>",
Flags: []cli.Flag{
internal.NoInputFlag,
},
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Usage: "List volumes associated with an app", Usage: "List volumes associated with an app",
HideHelpCommand: true, HideHelpCommand: true,

View File

@ -26,12 +26,10 @@ var catalogueGenerateCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra catalogue generate [options] [<recipe>]", UsageText: "abra catalogue generate [options] [<recipe>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.PublishFlag, internal.PublishFlag,
internal.DryFlag, internal.DryFlag,
internal.SkipUpdatesFlag, internal.SkipUpdatesFlag,
internal.ChaosFlag, internal.ChaosFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Description: `Generate a new copy of the recipe catalogue. Description: `Generate a new copy of the recipe catalogue.

View File

@ -139,6 +139,8 @@ func newAbraApp(version, commit string) *cli.Command {
Version: fmt.Sprintf("%s-%s", version, commit[:7]), Version: fmt.Sprintf("%s-%s", version, commit[:7]),
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.DebugFlag, internal.DebugFlag,
internal.OfflineFlag,
internal.NoInputFlag,
}, },
Commands: []*cli.Command{ Commands: []*cli.Command{
&app.AppCommand, &app.AppCommand,

View File

@ -96,6 +96,7 @@ var NoInputFlag = &cli.BoolFlag{
Aliases: []string{"n"}, Aliases: []string{"n"},
Usage: "Toggle non-interactive mode", Usage: "Toggle non-interactive mode",
Destination: &NoInput, Destination: &NoInput,
Persistent: true,
} }
// Debug stores the variable from DebugFlag. // Debug stores the variable from DebugFlag.
@ -119,6 +120,7 @@ var OfflineFlag = &cli.BoolFlag{
Aliases: []string{"o"}, Aliases: []string{"o"},
Destination: &Offline, Destination: &Offline,
Usage: "Prefer offline & filesystem access when possible", Usage: "Prefer offline & filesystem access when possible",
Persistent: true,
} }
// ReleaseNotes stores the variable from ReleaseNotesFlag. // ReleaseNotes stores the variable from ReleaseNotesFlag.

View File

@ -11,15 +11,12 @@ import (
) )
var recipeDiffCommand = cli.Command{ var recipeDiffCommand = cli.Command{
Name: "diff", Name: "diff",
Usage: "Show unstaged changes in recipe config", Usage: "Show unstaged changes in recipe config",
Description: "This command requires /usr/bin/git.", Description: "This command requires /usr/bin/git.",
HideHelpCommand: true, HideHelpCommand: true,
Aliases: []string{"d"}, Aliases: []string{"d"},
UsageText: "abra recipe diff [options] <recipe>", UsageText: "abra recipe diff [options] <recipe>",
Flags: []cli.Flag{
internal.NoInputFlag,
},
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
EnableShellCompletion: true, EnableShellCompletion: true,
ShellComplete: autocomplete.RecipeNameComplete, ShellComplete: autocomplete.RecipeNameComplete,

View File

@ -12,15 +12,11 @@ import (
) )
var recipeFetchCommand = cli.Command{ var recipeFetchCommand = cli.Command{
Name: "fetch", Name: "fetch",
Usage: "Fetch recipe(s)", Usage: "Fetch recipe(s)",
Aliases: []string{"f"}, Aliases: []string{"f"},
UsageText: "abra recipe fetch [options] [<recipe>]", UsageText: "abra recipe fetch [options] [<recipe>]",
Description: "Retrieves all recipes if no <recipe> argument is passed", Description: "Retrieves all recipes if no <recipe> argument is passed",
Flags: []cli.Flag{
internal.NoInputFlag,
internal.OfflineFlag,
},
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
EnableShellCompletion: true, EnableShellCompletion: true,
ShellComplete: autocomplete.RecipeNameComplete, ShellComplete: autocomplete.RecipeNameComplete,

View File

@ -20,8 +20,6 @@ var recipeLintCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OnlyErrorFlag, internal.OnlyErrorFlag,
internal.OfflineFlag,
internal.NoInputFlag,
internal.ChaosFlag, internal.ChaosFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -32,7 +32,6 @@ var recipeListCommand = cli.Command{
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.MachineReadableFlag, internal.MachineReadableFlag,
patternFlag, patternFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Action: func(ctx context.Context, cmd *cli.Command) error { Action: func(ctx context.Context, cmd *cli.Command) error {

View File

@ -35,8 +35,6 @@ var recipeNewCommand = cli.Command{
Name: "new", Name: "new",
Aliases: []string{"n"}, Aliases: []string{"n"},
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.OfflineFlag,
internal.GitNameFlag, internal.GitNameFlag,
internal.GitEmailFlag, internal.GitEmailFlag,
}, },

View File

@ -49,13 +49,11 @@ Publish your new release to git.coopcloud.tech with "-p/--publish". This
requires that you have permission to git push to these repositories and have requires that you have permission to git push to these repositories and have
your SSH keys configured on your account.`, your SSH keys configured on your account.`,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.DryFlag, internal.DryFlag,
internal.MajorFlag, internal.MajorFlag,
internal.MinorFlag, internal.MinorFlag,
internal.PatchFlag, internal.PatchFlag,
internal.PublishFlag, internal.PublishFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
EnableShellCompletion: true, EnableShellCompletion: true,

View File

@ -12,15 +12,12 @@ import (
) )
var recipeResetCommand = cli.Command{ var recipeResetCommand = cli.Command{
Name: "reset", Name: "reset",
Usage: "Remove all unstaged changes from recipe config", Usage: "Remove all unstaged changes from recipe config",
Description: "WARNING: this will delete your changes. Be Careful.", Description: "WARNING: this will delete your changes. Be Careful.",
HideHelpCommand: true, HideHelpCommand: true,
Aliases: []string{"rs"}, Aliases: []string{"rs"},
UsageText: "abra recipe reset [options] <recipe>", UsageText: "abra recipe reset [options] <recipe>",
Flags: []cli.Flag{
internal.NoInputFlag,
},
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
EnableShellCompletion: true, EnableShellCompletion: true,
ShellComplete: autocomplete.RecipeNameComplete, ShellComplete: autocomplete.RecipeNameComplete,

View File

@ -23,7 +23,6 @@ var recipeSyncCommand = cli.Command{
HideHelpCommand: true, HideHelpCommand: true,
UsageText: "abra recipe lint [options] <recipe> [<version>]", UsageText: "abra recipe lint [options] <recipe> [<version>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.DryFlag, internal.DryFlag,
internal.MajorFlag, internal.MajorFlag,
internal.MinorFlag, internal.MinorFlag,

View File

@ -57,7 +57,6 @@ interface.
You may invoke this command in "wizard" mode and be prompted for input.`, You may invoke this command in "wizard" mode and be prompted for input.`,
UsageText: "abra recipe upgrade [options] [<recipe>]", UsageText: "abra recipe upgrade [options] [<recipe>]",
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.PatchFlag, internal.PatchFlag,
internal.MinorFlag, internal.MinorFlag,
internal.MajorFlag, internal.MajorFlag,

View File

@ -31,8 +31,6 @@ var recipeVersionCommand = cli.Command{
UsageText: "abra recipe version [options] <recipe>", UsageText: "abra recipe version [options] <recipe>",
HideHelpCommand: true, HideHelpCommand: true,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.OfflineFlag,
internal.NoInputFlag,
internal.MachineReadableFlag, internal.MachineReadableFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,

View File

@ -120,7 +120,6 @@ You can also pass "--no-domain-checks/-D" flag to use any arbitrary name
instead of a real domain. The host will be resolved with the "Hostname" entry instead of a real domain. The host will be resolved with the "Hostname" entry
of your ~/.ssh/config. Checks for a valid online domain will be skipped.`, of your ~/.ssh/config. Checks for a valid online domain will be skipped.`,
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.NoInputFlag,
internal.NoDomainChecksFlag, internal.NoDomainChecksFlag,
localFlag, localFlag,
}, },

View File

@ -22,7 +22,6 @@ var serverListCommand = cli.Command{
Flags: []cli.Flag{ Flags: []cli.Flag{
internal.DebugFlag, internal.DebugFlag,
internal.MachineReadableFlag, internal.MachineReadableFlag,
internal.OfflineFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
Action: func(ctx context.Context, cmd *cli.Command) error { Action: func(ctx context.Context, cmd *cli.Command) error {

View File

@ -44,8 +44,6 @@ app. This can result in unwanted data loss if not used carefully.`,
Flags: []cli.Flag{ Flags: []cli.Flag{
allFilterFlag, allFilterFlag,
volumesFilterFlag, volumesFilterFlag,
internal.OfflineFlag,
internal.NoInputFlag,
}, },
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
EnableShellCompletion: true, EnableShellCompletion: true,

View File

@ -24,10 +24,6 @@ var serverRemoveCommand = cli.Command{
Abra will remove the internal bookkeeping ($ABRA_DIR/servers/...) and Abra will remove the internal bookkeeping ($ABRA_DIR/servers/...) and
underlying client connection context. This server will then be lost in time, underlying client connection context. This server will then be lost in time,
like tears in rain.`, like tears in rain.`,
Flags: []cli.Flag{
internal.NoInputFlag,
internal.OfflineFlag,
},
Before: internal.SubCommandBefore, Before: internal.SubCommandBefore,
EnableShellCompletion: true, EnableShellCompletion: true,
ShellComplete: autocomplete.ServerNameComplete, ShellComplete: autocomplete.ServerNameComplete,