mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-09-07 09:05:55 +00:00
Merge pull request #1049 from molecula/rbf-cli-help
Improve RBF CLI help
This commit is contained in:
commit
bb5153a7c1
1 changed files with 45 additions and 14 deletions
59
cmd/rbf.go
59
cmd/rbf.go
|
|
@ -17,6 +17,7 @@ package cmd
|
|||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
|
||||
|
|
@ -42,14 +43,21 @@ Provides a set of commands for inspecting RBF data files.
|
|||
func newRBFCheckCommand(stdin io.Reader, stdout, stderr io.Writer) *cobra.Command {
|
||||
c := ctl.NewRBFCheckCommand(stdin, stdout, stderr)
|
||||
cmd := &cobra.Command{
|
||||
Use: "check",
|
||||
Use: "check [flags] PATH",
|
||||
Short: "Run consistency check on RBF data.",
|
||||
Long: `
|
||||
Executes a consistency check on an RBF data directory.
|
||||
`,
|
||||
Args: cobra.ExactArgs(1),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
Args: func(cmd *cobra.Command, args []string) error {
|
||||
if len(args) == 0 {
|
||||
return fmt.Errorf("data directory path required")
|
||||
} else if len(args) > 1 {
|
||||
return fmt.Errorf("too many command line arguments")
|
||||
}
|
||||
c.Path = args[0]
|
||||
return nil
|
||||
},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return c.Run(context.Background())
|
||||
},
|
||||
}
|
||||
|
|
@ -59,13 +67,18 @@ Executes a consistency check on an RBF data directory.
|
|||
func newRBFDumpCommand(stdin io.Reader, stdout, stderr io.Writer) *cobra.Command {
|
||||
c := ctl.NewRBFDumpCommand(stdin, stdout, stderr)
|
||||
cmd := &cobra.Command{
|
||||
Use: "dump",
|
||||
Use: "dump [flags] PATH PGNO [PGNO...]",
|
||||
Short: "Prints RBF raw page data",
|
||||
Long: `
|
||||
Dumps the raw hex data for one or more RBF pages.
|
||||
`,
|
||||
Args: cobra.MinimumNArgs(2),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
Args: func(cmd *cobra.Command, args []string) error {
|
||||
if len(args) == 0 {
|
||||
return fmt.Errorf("data directory path required")
|
||||
} else if len(args) == 1 {
|
||||
return fmt.Errorf("page number required")
|
||||
}
|
||||
|
||||
c.Path = args[0]
|
||||
|
||||
for _, arg := range args[1:] {
|
||||
|
|
@ -76,6 +89,9 @@ Dumps the raw hex data for one or more RBF pages.
|
|||
c.Pgnos = append(c.Pgnos, uint32(pgno))
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return c.Run(context.Background())
|
||||
},
|
||||
}
|
||||
|
|
@ -85,14 +101,21 @@ Dumps the raw hex data for one or more RBF pages.
|
|||
func newRBFPagesCommand(stdin io.Reader, stdout, stderr io.Writer) *cobra.Command {
|
||||
c := ctl.NewRBFPagesCommand(stdin, stdout, stderr)
|
||||
cmd := &cobra.Command{
|
||||
Use: "pages",
|
||||
Use: "pages [flags] PATH",
|
||||
Short: "Prints metadata for the list of all pages",
|
||||
Long: `
|
||||
Prints a line for every page in the database with its type/status.
|
||||
`,
|
||||
Args: cobra.ExactArgs(1),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
Args: func(cmd *cobra.Command, args []string) error {
|
||||
if len(args) == 0 {
|
||||
return fmt.Errorf("data directory path required")
|
||||
} else if len(args) > 1 {
|
||||
return fmt.Errorf("too many command line arguments")
|
||||
}
|
||||
c.Path = args[0]
|
||||
return nil
|
||||
},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return c.Run(context.Background())
|
||||
},
|
||||
}
|
||||
|
|
@ -105,13 +128,18 @@ Prints a line for every page in the database with its type/status.
|
|||
func newRBFPageCommand(stdin io.Reader, stdout, stderr io.Writer) *cobra.Command {
|
||||
c := ctl.NewRBFPageCommand(stdin, stdout, stderr)
|
||||
cmd := &cobra.Command{
|
||||
Use: "page",
|
||||
Short: "Prints data for a single page",
|
||||
Use: "page [flags] PATH PGNO [PGNO...]",
|
||||
Short: "Prints data for a page(s)",
|
||||
Long: `
|
||||
Prints the header & cell data for a single page.
|
||||
Prints the header & cell data for one or more pages.
|
||||
`,
|
||||
Args: cobra.MinimumNArgs(2),
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
Args: func(cmd *cobra.Command, args []string) error {
|
||||
if len(args) == 0 {
|
||||
return fmt.Errorf("data directory path required")
|
||||
} else if len(args) == 1 {
|
||||
return fmt.Errorf("page number required")
|
||||
}
|
||||
|
||||
c.Path = args[0]
|
||||
|
||||
for _, arg := range args[1:] {
|
||||
|
|
@ -122,6 +150,9 @@ Prints the header & cell data for a single page.
|
|||
c.Pgnos = append(c.Pgnos, uint32(pgno))
|
||||
}
|
||||
|
||||
return nil
|
||||
},
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
return c.Run(context.Background())
|
||||
},
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue