func runServer(s IntegrationSuiteInterface, cs chunks.ChunkStore) { server := datas.NewRemoteDatabaseServer(cs, 0) server.Ready = func() { s.setPort(server.Port()) runNode(s) server.Stop() } server.Run() }
func runServe(args []string) int { cs, err := spec.GetChunkStore(args[0]) d.CheckError(err) server := datas.NewRemoteDatabaseServer(cs, port) // Shutdown server gracefully so that profile may be written c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) signal.Notify(c, syscall.SIGTERM) go func() { <-c server.Stop() }() d.Try(func() { defer profile.MaybeStartProfile().Stop() server.Run() }) return 0 }
func main() { flag.Usage = func() { fmt.Fprintf(os.Stderr, "Serves a Noms database over HTTP\n\n") fmt.Fprintf(os.Stderr, "Usage: noms serve <database>\n") flag.PrintDefaults() fmt.Fprintf(os.Stderr, "\nFor detailed information on spelling databases, see: at https://github.com/attic-labs/noms/blob/master/doc/spelling.md.\n\n") } spec.RegisterDatabaseFlags() flag.Parse() if len(flag.Args()) != 1 { flag.Usage() return } spec, err := spec.ParseDatabaseSpec(flag.Arg(0)) util.CheckError(err) if spec.Protocol != "mem" && spec.Protocol != "ldb" { err := errors.New("Illegal database spec for server, must be 'mem' or 'ldb'") util.CheckError(err) } cs, err := spec.ChunkStore() util.CheckError(err) server := datas.NewRemoteDatabaseServer(cs, *port) // Shutdown server gracefully so that profile may be written c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) signal.Notify(c, syscall.SIGTERM) go func() { <-c server.Stop() }() d.Try(func() { defer profile.MaybeStartProfile().Stop() server.Run() }) }