func main() { flag.BoolVar(showHelp, "h", false, "Show help message") flag.Usage = usage flag.Parse() if flag.NArg() >= 1 && strings.ToLower(flag.Args()[0]) == "help" { *showHelp = true } if *runVerbose { dvid.Verbose = true } if *showHelp || flag.NArg() == 0 { flag.Usage() os.Exit(0) } if *readonly { server.SetReadOnly(true) } if *cpuprofile != "" { f, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() } // Determine numer of logical CPUs on local machine and unless overridden, use // all of them. numCPU := runtime.NumCPU() if *useCPU != 0 { dvid.NumCPU = *useCPU } else if flag.NArg() >= 1 && flag.Args()[0] == "serve" { dvid.NumCPU = numCPU } else { dvid.NumCPU = 1 } runtime.GOMAXPROCS(dvid.NumCPU) command := dvid.Command(flag.Args()) if err := DoCommand(command); err != nil { fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) } }
serve <configuration path> For storage engines that have repair ability (e.g., basholeveldb): repair <engine name> <database path> The <engine name> refers to the name of the engine: "basholeveldb", "kvautobus", etc. The <database path> is the file path to the directory. ` var usage = func() { // Print local DVID help fmt.Printf(helpMessage) // Print server DVID help if available err := DoCommand(dvid.Command([]string{"help"})) if err != nil { fmt.Printf("Unable to get 'help' from DVID server at %q.\n%v\n", server.DefaultWebAddress, err) } } func currentDir() string { currentDir, err := os.Getwd() if err != nil { log.Fatalln("Could not get current directory:", err) } return currentDir } func main() {