diff --git a/go/cmd/dolt/cli/arg_helpers.go b/go/cmd/dolt/cli/arg_helpers.go index 33aa15878d..a9d721f4f9 100644 --- a/go/cmd/dolt/cli/arg_helpers.go +++ b/go/cmd/dolt/cli/arg_helpers.go @@ -32,18 +32,41 @@ var ErrEmptyDefTuple = errors.New("empty definition tuple") type UsagePrinter func() -func ParseArgs(ap *argparser.ArgParser, args []string, usagePrinter UsagePrinter) *argparser.ArgParseResults { +// ParseArgs is used for Dolt SQL functions that are run on the server and should not exit +func ParseArgs(ap *argparser.ArgParser, args []string, usagePrinter UsagePrinter) (*argparser.ArgParseResults, error) { + apr, err := ap.Parse(args) + + if err != nil { + // --help param + if usagePrinter != nil { + usagePrinter() + } + + return nil, err + } + + return apr, nil +} + +// ParseArgsOrDie is used for CLI command that should exit after erroring. +func ParseArgsOrDie(ap *argparser.ArgParser, args []string, usagePrinter UsagePrinter) *argparser.ArgParseResults { apr, err := ap.Parse(args) if err != nil { if err != argparser.ErrHelp { PrintErrln(err.Error()) - usagePrinter() + + if usagePrinter != nil { + usagePrinter() + } + os.Exit(1) } // --help param - usagePrinter() + if usagePrinter != nil { + usagePrinter() + } os.Exit(0) } diff --git a/go/cmd/dolt/commands/add.go b/go/cmd/dolt/commands/add.go index 859adbc10f..6e57a108d5 100644 --- a/go/cmd/dolt/commands/add.go +++ b/go/cmd/dolt/commands/add.go @@ -61,7 +61,7 @@ func (cmd AddCmd) CreateMarkdown(fs filesys.Filesys, path, commandStr string) er func (cmd AddCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cli.CreateAddArgParser() helpPr, _ := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, addDocs, ap)) - apr := cli.ParseArgs(ap, args, helpPr) + apr := cli.ParseArgsOrDie(ap, args, helpPr) if apr.ContainsArg(doltdb.DocTableName) { // Only allow adding the dolt_docs table if it has a conflict to resolve diff --git a/go/cmd/dolt/commands/blame.go b/go/cmd/dolt/commands/blame.go index c4142d5d7b..5a8e00a123 100644 --- a/go/cmd/dolt/commands/blame.go +++ b/go/cmd/dolt/commands/blame.go @@ -122,7 +122,7 @@ func (cmd BlameCmd) EventType() eventsapi.ClientEventType { func (cmd BlameCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, blameDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() == 0 || apr.NArg() > 2 { usage() diff --git a/go/cmd/dolt/commands/branch.go b/go/cmd/dolt/commands/branch.go index 73d68c66c3..d3e50b06c1 100644 --- a/go/cmd/dolt/commands/branch.go +++ b/go/cmd/dolt/commands/branch.go @@ -114,7 +114,7 @@ func (cmd BranchCmd) EventType() eventsapi.ClientEventType { func (cmd BranchCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, branchDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) switch { case apr.Contains(moveFlag): diff --git a/go/cmd/dolt/commands/checkout.go b/go/cmd/dolt/commands/checkout.go index cf4e5bbb99..427658349c 100644 --- a/go/cmd/dolt/commands/checkout.go +++ b/go/cmd/dolt/commands/checkout.go @@ -76,7 +76,7 @@ func (cmd CheckoutCmd) EventType() eventsapi.ClientEventType { func (cmd CheckoutCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cli.CreateCheckoutArgParser() helpPrt, usagePrt := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, checkoutDocs, ap)) - apr := cli.ParseArgs(ap, args, helpPrt) + apr := cli.ParseArgsOrDie(ap, args, helpPrt) if (apr.Contains(cli.CheckoutCoBranch) && apr.NArg() > 1) || (!apr.Contains(cli.CheckoutCoBranch) && apr.NArg() == 0) { usagePrt() diff --git a/go/cmd/dolt/commands/clone.go b/go/cmd/dolt/commands/clone.go index eca4ee4334..fb72251570 100644 --- a/go/cmd/dolt/commands/clone.go +++ b/go/cmd/dolt/commands/clone.go @@ -103,7 +103,7 @@ func (cmd CloneCmd) EventType() eventsapi.ClientEventType { func (cmd CloneCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, cloneDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) remoteName := apr.GetValueOrDefault(remoteParam, "origin") branch := apr.GetValueOrDefault(branchParam, "") diff --git a/go/cmd/dolt/commands/cnfcmds/cat.go b/go/cmd/dolt/commands/cnfcmds/cat.go index a8e6e31d68..45606231ef 100644 --- a/go/cmd/dolt/commands/cnfcmds/cat.go +++ b/go/cmd/dolt/commands/cnfcmds/cat.go @@ -78,7 +78,7 @@ func (cmd CatCmd) createArgParser() *argparser.ArgParser { func (cmd CatCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, catDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) args = apr.Args() if len(args) == 0 { diff --git a/go/cmd/dolt/commands/cnfcmds/resolve.go b/go/cmd/dolt/commands/cnfcmds/resolve.go index 25f08820d3..1606d645b6 100644 --- a/go/cmd/dolt/commands/cnfcmds/resolve.go +++ b/go/cmd/dolt/commands/cnfcmds/resolve.go @@ -104,7 +104,7 @@ func (cmd ResolveCmd) createArgParser() *argparser.ArgParser { func (cmd ResolveCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, resDocumentation, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) var verr errhand.VerboseError if apr.ContainsAny(autoResolverParams...) { diff --git a/go/cmd/dolt/commands/commit.go b/go/cmd/dolt/commands/commit.go index bf7822ce5a..fb1dac8b07 100644 --- a/go/cmd/dolt/commands/commit.go +++ b/go/cmd/dolt/commands/commit.go @@ -71,7 +71,7 @@ func (cmd CommitCmd) CreateMarkdown(fs filesys.Filesys, path, commandStr string) func (cmd CommitCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cli.CreateCommitArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, commitDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) // Check if the -all param is provided. Stage all tables if so. allFlag := apr.Contains(cli.AllFlag) diff --git a/go/cmd/dolt/commands/config.go b/go/cmd/dolt/commands/config.go index 58e57ffec9..390ba557ba 100644 --- a/go/cmd/dolt/commands/config.go +++ b/go/cmd/dolt/commands/config.go @@ -95,7 +95,7 @@ func (cmd ConfigCmd) createArgParser() *argparser.ArgParser { func (cmd ConfigCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, cfgDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) cfgTypes := apr.FlagsEqualTo([]string{globalParamName, localParamName}, true) ops := apr.FlagsEqualTo([]string{addOperationStr, listOperationStr, getOperationStr, unsetOperationStr}, true) diff --git a/go/cmd/dolt/commands/credcmds/check.go b/go/cmd/dolt/commands/credcmds/check.go index 1a4ee94549..4a6f9bdf0b 100644 --- a/go/cmd/dolt/commands/credcmds/check.go +++ b/go/cmd/dolt/commands/credcmds/check.go @@ -82,7 +82,7 @@ func (cmd CheckCmd) createArgParser() *argparser.ArgParser { func (cmd CheckCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, checkDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) endpoint := loadEndpoint(dEnv, apr) diff --git a/go/cmd/dolt/commands/credcmds/import.go b/go/cmd/dolt/commands/credcmds/import.go index 3abc5e5e66..c4143a4ee7 100644 --- a/go/cmd/dolt/commands/credcmds/import.go +++ b/go/cmd/dolt/commands/credcmds/import.go @@ -94,7 +94,7 @@ func (cmd ImportCmd) createArgParser() *argparser.ArgParser { func (cmd ImportCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, importDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) credsDir, verr := actions.EnsureCredsDir(dEnv) if verr != nil { diff --git a/go/cmd/dolt/commands/credcmds/ls.go b/go/cmd/dolt/commands/credcmds/ls.go index 8531db1197..a8d6194aaa 100644 --- a/go/cmd/dolt/commands/credcmds/ls.go +++ b/go/cmd/dolt/commands/credcmds/ls.go @@ -79,7 +79,7 @@ func (cmd LsCmd) createArgParser() *argparser.ArgParser { func (cmd LsCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, lsDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.Contains("verbose") { lsVerbose = true diff --git a/go/cmd/dolt/commands/credcmds/new.go b/go/cmd/dolt/commands/credcmds/new.go index 3bf9457a8a..f4f7ff9a80 100644 --- a/go/cmd/dolt/commands/credcmds/new.go +++ b/go/cmd/dolt/commands/credcmds/new.go @@ -75,7 +75,7 @@ func (cmd NewCmd) createArgParser() *argparser.ArgParser { func (cmd NewCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, newDocs, ap)) - cli.ParseArgs(ap, args, help) + cli.ParseArgsOrDie(ap, args, help) _, newCreds, verr := actions.NewCredsFile(dEnv) diff --git a/go/cmd/dolt/commands/credcmds/rm.go b/go/cmd/dolt/commands/credcmds/rm.go index 8786caf15d..35fdc48531 100644 --- a/go/cmd/dolt/commands/credcmds/rm.go +++ b/go/cmd/dolt/commands/credcmds/rm.go @@ -72,7 +72,7 @@ func (cmd RmCmd) EventType() eventsapi.ClientEventType { func (cmd RmCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, rmDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) args = apr.Args() credsDir, verr := actions.EnsureCredsDir(dEnv) diff --git a/go/cmd/dolt/commands/credcmds/use.go b/go/cmd/dolt/commands/credcmds/use.go index 638fc63dc6..dd3ecacb33 100644 --- a/go/cmd/dolt/commands/credcmds/use.go +++ b/go/cmd/dolt/commands/credcmds/use.go @@ -78,7 +78,7 @@ func (cmd UseCmd) createArgParser() *argparser.ArgParser { func (cmd UseCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, useDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) args = apr.Args() if len(args) != 1 { return commands.HandleVErrAndExitCode(errhand.BuildDError("error: expected exactly one credential public key or key id as argument").Build(), usage) diff --git a/go/cmd/dolt/commands/diff.go b/go/cmd/dolt/commands/diff.go index d4fa16c2cc..a796fb7d66 100644 --- a/go/cmd/dolt/commands/diff.go +++ b/go/cmd/dolt/commands/diff.go @@ -152,7 +152,7 @@ func (cmd DiffCmd) createArgParser() *argparser.ArgParser { func (cmd DiffCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, diffDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) fromRoot, toRoot, dArgs, err := parseDiffArgs(ctx, dEnv, apr) diff --git a/go/cmd/dolt/commands/dump_docs.go b/go/cmd/dolt/commands/dump_docs.go index 9e2b8d0b2b..15c9e3d587 100644 --- a/go/cmd/dolt/commands/dump_docs.go +++ b/go/cmd/dolt/commands/dump_docs.go @@ -68,7 +68,7 @@ func (cmd *DumpDocsCmd) Exec(_ context.Context, commandStr string, args []string ap := argparser.NewArgParser() ap.SupportsString(dirParamName, "", "dir", "The directory where the md files should be dumped") help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, cli.CommandDocumentationContent{}, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) dirStr := apr.GetValueOrDefault(dirParamName, ".") diff --git a/go/cmd/dolt/commands/fetch.go b/go/cmd/dolt/commands/fetch.go index 6a792f4a9f..ce77e1aecd 100644 --- a/go/cmd/dolt/commands/fetch.go +++ b/go/cmd/dolt/commands/fetch.go @@ -81,7 +81,7 @@ func (cmd FetchCmd) createArgParser() *argparser.ArgParser { func (cmd FetchCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, fetchDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) remotes, _ := dEnv.GetRemotes() r, refSpecs, verr := getRefSpecs(apr.Args(), dEnv, remotes) diff --git a/go/cmd/dolt/commands/filter-branch.go b/go/cmd/dolt/commands/filter-branch.go index 601b8c0aa5..a7da7470b4 100644 --- a/go/cmd/dolt/commands/filter-branch.go +++ b/go/cmd/dolt/commands/filter-branch.go @@ -97,7 +97,7 @@ func (cmd FilterBranchCmd) EventType() eventsapi.ClientEventType { func (cmd FilterBranchCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, filterBranchDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() < 1 || apr.NArg() > 2 { args := strings.Join(apr.Args(), ", ") diff --git a/go/cmd/dolt/commands/gc.go b/go/cmd/dolt/commands/gc.go index ee5da9e81e..907a9fc3be 100644 --- a/go/cmd/dolt/commands/gc.go +++ b/go/cmd/dolt/commands/gc.go @@ -90,7 +90,7 @@ func (cmd GarbageCollectionCmd) Exec(ctx context.Context, commandStr string, arg ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, gcDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) var err error if apr.Contains(gcShallowFlag) { diff --git a/go/cmd/dolt/commands/indexcmds/cat.go b/go/cmd/dolt/commands/indexcmds/cat.go index b43a398596..5d198acdfe 100644 --- a/go/cmd/dolt/commands/indexcmds/cat.go +++ b/go/cmd/dolt/commands/indexcmds/cat.go @@ -86,7 +86,7 @@ func (cmd CatCmd) createArgParser() *argparser.ArgParser { func (cmd CatCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, catDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() == 0 { usage() diff --git a/go/cmd/dolt/commands/indexcmds/ls.go b/go/cmd/dolt/commands/indexcmds/ls.go index 25aa8d2978..5bfa11b2ea 100644 --- a/go/cmd/dolt/commands/indexcmds/ls.go +++ b/go/cmd/dolt/commands/indexcmds/ls.go @@ -59,7 +59,7 @@ func (cmd LsCmd) createArgParser() *argparser.ArgParser { func (cmd LsCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, lsDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() > 1 { return HandleErr(errhand.BuildDError("Only one table may be provided at a time.").Build(), usage) diff --git a/go/cmd/dolt/commands/indexcmds/rebuild.go b/go/cmd/dolt/commands/indexcmds/rebuild.go index 30851f96e3..c50657be4c 100644 --- a/go/cmd/dolt/commands/indexcmds/rebuild.go +++ b/go/cmd/dolt/commands/indexcmds/rebuild.go @@ -60,7 +60,7 @@ func (cmd RebuildCmd) createArgParser() *argparser.ArgParser { func (cmd RebuildCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, rebuildDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() == 0 { usage() diff --git a/go/cmd/dolt/commands/init.go b/go/cmd/dolt/commands/init.go index ab46c8e779..47a8fac910 100644 --- a/go/cmd/dolt/commands/init.go +++ b/go/cmd/dolt/commands/init.go @@ -83,7 +83,7 @@ func (cmd InitCmd) createArgParser() *argparser.ArgParser { func (cmd InitCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, initDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if dEnv.HasDoltDir() { cli.PrintErrln(color.RedString("This directory has already been initialized.")) diff --git a/go/cmd/dolt/commands/log.go b/go/cmd/dolt/commands/log.go index 89b41031f8..f2edaa0b15 100644 --- a/go/cmd/dolt/commands/log.go +++ b/go/cmd/dolt/commands/log.go @@ -118,7 +118,7 @@ func (cmd LogCmd) Exec(ctx context.Context, commandStr string, args []string, dE func logWithLoggerFunc(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv, loggerFunc commitLoggerFunc) int { ap := createLogArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, logDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() > 1 { usage() diff --git a/go/cmd/dolt/commands/login.go b/go/cmd/dolt/commands/login.go index d2f5587ba5..d72fb58ace 100644 --- a/go/cmd/dolt/commands/login.go +++ b/go/cmd/dolt/commands/login.go @@ -84,7 +84,7 @@ func (cmd LoginCmd) EventType() eventsapi.ClientEventType { func (cmd LoginCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, loginDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) var verr errhand.VerboseError if apr.NArg() == 0 { diff --git a/go/cmd/dolt/commands/ls.go b/go/cmd/dolt/commands/ls.go index d10f3a15fe..2a70b57fb5 100644 --- a/go/cmd/dolt/commands/ls.go +++ b/go/cmd/dolt/commands/ls.go @@ -83,7 +83,7 @@ func (cmd LsCmd) EventType() eventsapi.ClientEventType { func (cmd LsCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, lsDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.Contains(systemFlag) && apr.Contains(allFlag) { verr := errhand.BuildDError("--%s and --%s are mutually exclusive", systemFlag, allFlag).SetPrintUsage().Build() diff --git a/go/cmd/dolt/commands/merge.go b/go/cmd/dolt/commands/merge.go index 2588b10842..13e0ca3695 100644 --- a/go/cmd/dolt/commands/merge.go +++ b/go/cmd/dolt/commands/merge.go @@ -83,7 +83,7 @@ func (cmd MergeCmd) EventType() eventsapi.ClientEventType { func (cmd MergeCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cli.CreateMergeArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, mergeDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.ContainsAll(cli.SquashParam, cli.NoFFParam) { cli.PrintErrf("error: Flags '--%s' and '--%s' cannot be used together.\n", cli.SquashParam, cli.NoFFParam) diff --git a/go/cmd/dolt/commands/migrate.go b/go/cmd/dolt/commands/migrate.go index dfe7e64143..3832ae3a0c 100644 --- a/go/cmd/dolt/commands/migrate.go +++ b/go/cmd/dolt/commands/migrate.go @@ -71,7 +71,7 @@ func (cmd MigrateCmd) EventType() eventsapi.ClientEventType { func (cmd MigrateCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, _ := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, pushDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.Contains(migratePushFlag) && apr.Contains(migratePullFlag) { cli.PrintErrf(color.RedString("options --%s and --%s are mutually exclusive", migratePushFlag, migratePullFlag)) diff --git a/go/cmd/dolt/commands/pull.go b/go/cmd/dolt/commands/pull.go index d086b1cc48..55242b788b 100644 --- a/go/cmd/dolt/commands/pull.go +++ b/go/cmd/dolt/commands/pull.go @@ -70,7 +70,7 @@ func (cmd PullCmd) EventType() eventsapi.ClientEventType { func (cmd PullCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, pullDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) verr := pullFromRemote(ctx, dEnv, apr) diff --git a/go/cmd/dolt/commands/push.go b/go/cmd/dolt/commands/push.go index 590a7624d3..27c97dc1f3 100644 --- a/go/cmd/dolt/commands/push.go +++ b/go/cmd/dolt/commands/push.go @@ -103,7 +103,7 @@ func (cmd PushCmd) EventType() eventsapi.ClientEventType { func (cmd PushCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, pushDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) opts, verr := parsePushArgs(ctx, apr, dEnv) diff --git a/go/cmd/dolt/commands/read_tables.go b/go/cmd/dolt/commands/read_tables.go index bdf0f6621a..c8cd522fa7 100644 --- a/go/cmd/dolt/commands/read_tables.go +++ b/go/cmd/dolt/commands/read_tables.go @@ -81,7 +81,7 @@ func (cmd ReadTablesCmd) Exec(ctx context.Context, commandStr string, args []str ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, readTablesDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() < 2 { return HandleVErrAndExitCode(errhand.BuildDError("Missing required arguments").SetPrintUsage().Build(), usage) diff --git a/go/cmd/dolt/commands/remote.go b/go/cmd/dolt/commands/remote.go index b0a8e14c09..aae3f7587a 100644 --- a/go/cmd/dolt/commands/remote.go +++ b/go/cmd/dolt/commands/remote.go @@ -115,7 +115,7 @@ func (cmd RemoteCmd) EventType() eventsapi.ClientEventType { func (cmd RemoteCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, remoteDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) var verr errhand.VerboseError diff --git a/go/cmd/dolt/commands/reset.go b/go/cmd/dolt/commands/reset.go index ca253ae146..a71956c854 100644 --- a/go/cmd/dolt/commands/reset.go +++ b/go/cmd/dolt/commands/reset.go @@ -78,7 +78,7 @@ func (cmd ResetCmd) CreateMarkdown(fs filesys.Filesys, path, commandStr string) func (cmd ResetCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cli.CreateResetArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, resetDocContent, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.ContainsArg(doltdb.DocTableName) { return HandleDocTableVErrAndExitCode() diff --git a/go/cmd/dolt/commands/schcmds/export.go b/go/cmd/dolt/commands/schcmds/export.go index b063d7b6b6..be1408b17c 100644 --- a/go/cmd/dolt/commands/schcmds/export.go +++ b/go/cmd/dolt/commands/schcmds/export.go @@ -74,7 +74,7 @@ func (cmd ExportCmd) EventType() eventsapi.ClientEventType { func (cmd ExportCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, schExportDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) root, verr := commands.GetWorkingWithVErr(dEnv) diff --git a/go/cmd/dolt/commands/schcmds/import.go b/go/cmd/dolt/commands/schcmds/import.go index 97262fbe92..e23ab51ea6 100644 --- a/go/cmd/dolt/commands/schcmds/import.go +++ b/go/cmd/dolt/commands/schcmds/import.go @@ -164,7 +164,7 @@ func (cmd ImportCmd) createArgParser() *argparser.ArgParser { func (cmd ImportCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, schImportDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() != 2 { usage() diff --git a/go/cmd/dolt/commands/schcmds/show.go b/go/cmd/dolt/commands/schcmds/show.go index e94c5cddb0..81c4de5acf 100644 --- a/go/cmd/dolt/commands/schcmds/show.go +++ b/go/cmd/dolt/commands/schcmds/show.go @@ -77,7 +77,7 @@ func (cmd ShowCmd) EventType() eventsapi.ClientEventType { func (cmd ShowCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, tblSchemaDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) verr := printSchemas(ctx, apr, dEnv) diff --git a/go/cmd/dolt/commands/schcmds/tags.go b/go/cmd/dolt/commands/schcmds/tags.go index 700bea3550..29f35b1f87 100644 --- a/go/cmd/dolt/commands/schcmds/tags.go +++ b/go/cmd/dolt/commands/schcmds/tags.go @@ -66,7 +66,7 @@ func (cmd TagsCmd) createArgParser() *argparser.ArgParser { func (cmd TagsCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, tblTagsDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) tables := apr.Args() diff --git a/go/cmd/dolt/commands/send_metrics.go b/go/cmd/dolt/commands/send_metrics.go index 6b28ee70b8..765d99133d 100644 --- a/go/cmd/dolt/commands/send_metrics.go +++ b/go/cmd/dolt/commands/send_metrics.go @@ -75,7 +75,7 @@ func (cmd SendMetricsCmd) Exec(ctx context.Context, commandStr string, args []st ap.SupportsFlag(outputFlag, "o", "Flush events to stdout.") help, _ := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, cli.CommandDocumentationContent{ShortDesc: sendMetricsShortDesc}, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) metricsDisabled := dEnv.Config.GetStringOrDefault(env.MetricsDisabled, "false") diff --git a/go/cmd/dolt/commands/sql.go b/go/cmd/dolt/commands/sql.go index 69b819860a..e7a4ae0a8b 100644 --- a/go/cmd/dolt/commands/sql.go +++ b/go/cmd/dolt/commands/sql.go @@ -170,7 +170,7 @@ func (cmd SqlCmd) Exec(ctx context.Context, commandStr string, args []string, dE ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, sqlDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) err := validateSqlArgs(apr) if err != nil { return HandleVErrAndExitCode(errhand.VerboseErrorFromError(err), usage) diff --git a/go/cmd/dolt/commands/sqlserver/sqlclient.go b/go/cmd/dolt/commands/sqlserver/sqlclient.go index 18476c2767..b9e705fd6a 100644 --- a/go/cmd/dolt/commands/sqlserver/sqlclient.go +++ b/go/cmd/dolt/commands/sqlserver/sqlclient.go @@ -90,7 +90,7 @@ func (cmd SqlClientCmd) Exec(ctx context.Context, commandStr string, args []stri ap := cmd.createArgParser() help, _ := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, sqlClientDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) serverConfig, err := GetServerConfig(dEnv, apr) if err != nil { cli.PrintErrln(color.RedString("Bad Configuration")) diff --git a/go/cmd/dolt/commands/sqlserver/sqlserver.go b/go/cmd/dolt/commands/sqlserver/sqlserver.go index 23c1de479b..02be5ba308 100644 --- a/go/cmd/dolt/commands/sqlserver/sqlserver.go +++ b/go/cmd/dolt/commands/sqlserver/sqlserver.go @@ -154,7 +154,7 @@ func startServer(ctx context.Context, versionStr, commandStr string, args []stri ap := SqlServerCmd{}.CreateArgParser() help, _ := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, sqlServerDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) serverConfig, err := GetServerConfig(dEnv, apr) if err != nil { diff --git a/go/cmd/dolt/commands/status.go b/go/cmd/dolt/commands/status.go index ad12fe92c0..9cc2aaee37 100644 --- a/go/cmd/dolt/commands/status.go +++ b/go/cmd/dolt/commands/status.go @@ -67,7 +67,7 @@ func (cmd StatusCmd) createArgParser() *argparser.ArgParser { func (cmd StatusCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, _ := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, statusDocs, ap)) - cli.ParseArgs(ap, args, help) + cli.ParseArgsOrDie(ap, args, help) staged, notStaged, err := diff.GetStagedUnstagedTableDeltas(ctx, dEnv.DoltDB, dEnv.RepoStateReader()) diff --git a/go/cmd/dolt/commands/tag.go b/go/cmd/dolt/commands/tag.go index 4c493f7b01..e8ac1874a9 100644 --- a/go/cmd/dolt/commands/tag.go +++ b/go/cmd/dolt/commands/tag.go @@ -86,7 +86,7 @@ func (cmd TagCmd) EventType() eventsapi.ClientEventType { func (cmd TagCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, tagDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) // list tags if len(apr.Args()) == 0 { diff --git a/go/cmd/dolt/commands/tblcmds/cp.go b/go/cmd/dolt/commands/tblcmds/cp.go index 78139a54d6..b3ea6f5183 100644 --- a/go/cmd/dolt/commands/tblcmds/cp.go +++ b/go/cmd/dolt/commands/tblcmds/cp.go @@ -75,7 +75,7 @@ func (cmd CpCmd) EventType() eventsapi.ClientEventType { func (cmd CpCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, tblCpDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() != 2 { usage() diff --git a/go/cmd/dolt/commands/tblcmds/export.go b/go/cmd/dolt/commands/tblcmds/export.go index 18ba30bae2..9e209ece0b 100644 --- a/go/cmd/dolt/commands/tblcmds/export.go +++ b/go/cmd/dolt/commands/tblcmds/export.go @@ -138,7 +138,7 @@ func validateExportArgs(apr *argparser.ArgParseResults, usage cli.UsagePrinter) func parseExportArgs(ap *argparser.ArgParser, commandStr string, args []string) (*exportOptions, errhand.VerboseError) { help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, exportDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) tableName, tableLoc, fileLoc := validateExportArgs(apr, usage) if fileLoc == nil || len(tableLoc.Name) == 0 { diff --git a/go/cmd/dolt/commands/tblcmds/import.go b/go/cmd/dolt/commands/tblcmds/import.go index 7b64aeb601..ab9cbf44d6 100644 --- a/go/cmd/dolt/commands/tblcmds/import.go +++ b/go/cmd/dolt/commands/tblcmds/import.go @@ -341,7 +341,7 @@ func (cmd ImportCmd) Exec(ctx context.Context, commandStr string, args []string, ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, importDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) dEnv, err := commands.MaybeMigrateEnv(ctx, dEnv) diff --git a/go/cmd/dolt/commands/tblcmds/mv.go b/go/cmd/dolt/commands/tblcmds/mv.go index a048c79caf..1e6caec723 100644 --- a/go/cmd/dolt/commands/tblcmds/mv.go +++ b/go/cmd/dolt/commands/tblcmds/mv.go @@ -77,7 +77,7 @@ func (cmd MvCmd) EventType() eventsapi.ClientEventType { func (cmd MvCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, tblMvDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() != 2 { usage() diff --git a/go/cmd/dolt/commands/tblcmds/rm.go b/go/cmd/dolt/commands/tblcmds/rm.go index 9c59a94f27..746ae79d8e 100644 --- a/go/cmd/dolt/commands/tblcmds/rm.go +++ b/go/cmd/dolt/commands/tblcmds/rm.go @@ -71,7 +71,7 @@ func (cmd RmCmd) createArgParser() *argparser.ArgParser { func (cmd RmCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, tblRmDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() == 0 { usage() diff --git a/go/cmd/dolt/commands/verify_constraints.go b/go/cmd/dolt/commands/verify_constraints.go index f1c554b629..24ff087d1a 100644 --- a/go/cmd/dolt/commands/verify_constraints.go +++ b/go/cmd/dolt/commands/verify_constraints.go @@ -57,7 +57,7 @@ func (cmd VerifyConstraintsCmd) createArgParser() *argparser.ArgParser { func (cmd VerifyConstraintsCmd) Exec(ctx context.Context, commandStr string, args []string, dEnv *env.DoltEnv) int { ap := cmd.createArgParser() help, usage := cli.HelpAndUsagePrinters(cli.GetCommandDocumentation(commandStr, verifyConstraintsDocs, ap)) - apr := cli.ParseArgs(ap, args, help) + apr := cli.ParseArgsOrDie(ap, args, help) if apr.NArg() == 0 { usage() diff --git a/go/cmd/dolt/commands/version.go b/go/cmd/dolt/commands/version.go index 062171b859..0bb6f2b57a 100644 --- a/go/cmd/dolt/commands/version.go +++ b/go/cmd/dolt/commands/version.go @@ -67,7 +67,7 @@ func (cmd VersionCmd) Exec(ctx context.Context, commandStr string, args []string usage := func() {} ap := cmd.createArgParser() - apr := cli.ParseArgs(ap, args, usage) + apr := cli.ParseArgsOrDie(ap, args, usage) var verr errhand.VerboseError if apr.Contains(featureVersionFlag) { diff --git a/go/libraries/doltcore/sqle/dfunctions/commit.go b/go/libraries/doltcore/sqle/dfunctions/commit.go index d9123d294e..b5714a461e 100644 --- a/go/libraries/doltcore/sqle/dfunctions/commit.go +++ b/go/libraries/doltcore/sqle/dfunctions/commit.go @@ -47,7 +47,7 @@ func (cf *CommitFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) { if err != nil { return nil, err } - apr := cli.ParseArgs(ap, args, nil) + apr := cli.ParseArgsOrDie(ap, args, nil) var name, email string if authorStr, ok := apr.GetValue(cli.AuthorParam); ok { diff --git a/go/libraries/doltcore/sqle/dfunctions/dolt_add.go b/go/libraries/doltcore/sqle/dfunctions/dolt_add.go index ab1a7452c6..df9615586b 100644 --- a/go/libraries/doltcore/sqle/dfunctions/dolt_add.go +++ b/go/libraries/doltcore/sqle/dfunctions/dolt_add.go @@ -52,7 +52,11 @@ func (d DoltAddFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) { return 1, err } - apr := cli.ParseArgs(ap, args, nil) + apr, err := cli.ParseArgs(ap, args, nil) + if err != nil { + return 1, err + } + allFlag := apr.Contains(cli.AllFlag) if apr.NArg() == 0 && !allFlag { diff --git a/go/libraries/doltcore/sqle/dfunctions/dolt_checkout.go b/go/libraries/doltcore/sqle/dfunctions/dolt_checkout.go index e2ef47f19c..ce1ae1f3b2 100644 --- a/go/libraries/doltcore/sqle/dfunctions/dolt_checkout.go +++ b/go/libraries/doltcore/sqle/dfunctions/dolt_checkout.go @@ -58,7 +58,10 @@ func (d DoltCheckoutFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, erro return 1, err } - apr := cli.ParseArgs(ap, args, nil) + apr, err := cli.ParseArgs(ap, args, nil) + if err != nil { + return 1, err + } if (apr.Contains(cli.CheckoutCoBranch) && apr.NArg() > 1) || (!apr.Contains(cli.CheckoutCoBranch) && apr.NArg() == 0) { return 1, errors.New("Improper usage.") diff --git a/go/libraries/doltcore/sqle/dfunctions/dolt_commit.go b/go/libraries/doltcore/sqle/dfunctions/dolt_commit.go index f52390e172..5269c3e4a7 100644 --- a/go/libraries/doltcore/sqle/dfunctions/dolt_commit.go +++ b/go/libraries/doltcore/sqle/dfunctions/dolt_commit.go @@ -48,7 +48,7 @@ func (d DoltCommitFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) dbData, ok := dSess.GetDbData(dbName) if !ok { - return nil, fmt.Errorf("Could not load %s", dbName) + return nil, fmt.Errorf("Could not load database %s", dbName) } ddb := dbData.Ddb @@ -58,12 +58,14 @@ func (d DoltCommitFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) // Get the args for DOLT_COMMIT. args, err := getDoltArgs(ctx, row, d.Children()) - if err != nil { return nil, err } - apr := cli.ParseArgs(ap, args, nil) + apr, err := cli.ParseArgs(ap, args, nil) + if err != nil { + return nil, err + } allFlag := apr.Contains(cli.AllFlag) allowEmpty := apr.Contains(cli.AllowEmptyFlag) diff --git a/go/libraries/doltcore/sqle/dfunctions/dolt_merge.go b/go/libraries/doltcore/sqle/dfunctions/dolt_merge.go index 09c4e8e8c3..c3ba6c627f 100644 --- a/go/libraries/doltcore/sqle/dfunctions/dolt_merge.go +++ b/go/libraries/doltcore/sqle/dfunctions/dolt_merge.go @@ -58,7 +58,10 @@ func (d DoltMergeFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) return nil, err } - apr := cli.ParseArgs(ap, args, nil) + apr, err := cli.ParseArgs(ap, args, nil) + if err != nil { + return nil, err + } if apr.ContainsAll(cli.SquashParam, cli.NoFFParam) { return 1, fmt.Errorf("error: Flags '--%s' and '--%s' cannot be used together.\n", cli.SquashParam, cli.NoFFParam) diff --git a/go/libraries/doltcore/sqle/dfunctions/dolt_reset.go b/go/libraries/doltcore/sqle/dfunctions/dolt_reset.go index df37769788..7821d37445 100644 --- a/go/libraries/doltcore/sqle/dfunctions/dolt_reset.go +++ b/go/libraries/doltcore/sqle/dfunctions/dolt_reset.go @@ -53,7 +53,10 @@ func (d DoltResetFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) return 1, err } - apr := cli.ParseArgs(ap, args, nil) + apr, err := cli.ParseArgs(ap, args, nil) + if err != nil { + return 1, err + } // Check if problems with args first. if apr.ContainsAll(cli.HardResetParam, cli.SoftResetParam) { diff --git a/go/libraries/doltcore/sqle/dfunctions/merge.go b/go/libraries/doltcore/sqle/dfunctions/merge.go index b405234d48..7ff66aab07 100644 --- a/go/libraries/doltcore/sqle/dfunctions/merge.go +++ b/go/libraries/doltcore/sqle/dfunctions/merge.go @@ -51,7 +51,10 @@ func (cf *MergeFunc) Eval(ctx *sql.Context, row sql.Row) (interface{}, error) { return nil, err } - apr := cli.ParseArgs(ap, args, nil) + apr, err := cli.ParseArgs(ap, args, nil) + if err != nil { + return nil, err + } // The fist argument should be the branch name. branchName := apr.Arg(0) diff --git a/integration-tests/bats/sql-commit.bats b/integration-tests/bats/sql-commit.bats index d310d90772..6899193642 100644 --- a/integration-tests/bats/sql-commit.bats +++ b/integration-tests/bats/sql-commit.bats @@ -176,6 +176,48 @@ SQL [[ "$output" =~ 'test2,false,new table' ]] || false } +@test "sql-commit: The -f parameter is properly parsed and executes" { + run dolt sql <