var CreateMessageStoreBackend = func(args Args) store.MessageStore { switch args.MSBackend { case "none", "": return store.NewDummyMessageStore() case "file": guble.Info("using FileMessageStore in directory: %q", args.StoragePath) testfile := path.Join(args.StoragePath, "testfile") f, err := os.Create(testfile) if err != nil { panic(fmt.Errorf("directory for message store not present/writeable %q: %v", args.StoragePath, err)) } f.Close() os.Remove(testfile) return store.NewFileMessageStore(args.StoragePath) default: panic(fmt.Errorf("unknown message store backend: %q", args.MSBackend)) } } var CreateModules = func(args Args) []interface{} { modules := []interface{}{ server.NewWSHandlerFactory("/stream/"), server.NewRestMessageApi("/api/"), } if args.GcmEnable { if args.GcmApiKey == "" { panic("gcm api key has to be provided, if gcm is enabled") }
logger.WithField("err", err).Panic("Could not open database connection") } return db default: panic(fmt.Errorf("Unknown key-value backend: %q", *config.KVS)) } } var CreateMessageStore = func() store.MessageStore { switch *config.MS { case "none", "": return store.NewDummyMessageStore(store.NewMemoryKVStore()) case "file": logger.WithField("storagePath", *config.StoragePath).Info("Using FileMessageStore in directory") return store.NewFileMessageStore(*config.StoragePath) default: panic(fmt.Errorf("Unknown message-store backend: %q", *config.MS)) } } var CreateModules = func(router server.Router) []interface{} { modules := make([]interface{}, 0, 3) if wsHandler, err := websocket.NewWSHandler(router, "/stream/"); err != nil { logger.WithField("err", err).Error("Error loading WSHandler module:") } else { modules = append(modules, wsHandler) } modules = append(modules, rest.NewRestMessageAPI(router, "/api/"))