github.com/gochain-io/gochain@v2.2.26+incompatible/cmd/gochain-ethdb/main.go (about) 1 package main 2 3 import ( 4 "flag" 5 "fmt" 6 "os" 7 ) 8 9 func main() { 10 if err := run(os.Args[1:]); err == flag.ErrHelp { 11 os.Exit(1) 12 } else if err != nil { 13 fmt.Fprintln(os.Stderr, err) 14 os.Exit(1) 15 } 16 } 17 18 func run(args []string) error { 19 var cmd string 20 if len(args) > 0 { 21 cmd, args = args[0], args[1:] 22 } 23 24 switch cmd { 25 case "", "help": 26 PrintUsage() 27 return nil 28 case "check": 29 return NewCheckCommand().Run(args) 30 case "keys": 31 return NewKeysCommand().Run(args) 32 default: 33 return fmt.Errorf("unknown command: %q", cmd) 34 } 35 } 36 37 func PrintUsage() { 38 fmt.Fprintln(os.Stderr, ` 39 This is a tool for inspecting and working with ethdb database files. 40 41 Usage: 42 43 gochain-ethdb command [arguments] 44 45 The commands are: 46 47 check verify integrity of a segment 48 help print this screen 49 keys dump all keys for a table 50 `[1:]) 51 }