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  }