Listen string `arg:"-l,help: [Host:]Port the address to listen on (:8080)" env:"GUBLE_LISTEN"` LogInfo bool `arg:"--log-info,help: Log on INFO level (false)" env:"GUBLE_LOG_INFO"` LogDebug bool `arg:"--log-debug,help: Log on DEBUG level (false)" env:"GUBLE_LOG_DEBUG"` StoragePath string `arg:"--storage-path,help: The path for storing messages and key value data if 'file' is enabled (/var/lib/guble)" env:"GUBLE_STORAGE_PATH"` KVBackend string `arg:"--kv-backend,help: The storage backend for the key value store to use: file|memory (file)" env:"GUBLE_KV_BACKEND"` MSBackend string `arg:"--ms-backend,help: The message storage backend : file|memory (file)" env:"GUBLE_MS_BACKEND"` GcmEnable bool `arg:"--gcm-enable: Enable the Google Cloud Messaging Connector (false)" env:"GUBLE_GCM_ENABLE"` GcmApiKey string `arg:"--gcm-api-key: The Google API Key for Google Cloud Messaging" env:"GUBLE_GCM_API_KEY"` } var CreateKVStoreBackend = func(args Args) store.KVStore { switch args.KVBackend { case "memory": return store.NewMemoryKVStore() case "file": db := store.NewSqliteKVStore(path.Join(args.StoragePath, "kv-store.db"), true) if err := db.Open(); err != nil { panic(err) } return db default: panic(fmt.Errorf("unknown key value backend: %q", args.KVBackend)) } } 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)
}).Error("Use --storage-path=<path> to override the default location, or create the directory with RW rights.") } return err } f.Close() os.Remove(testfile) } return nil } var CreateKVStore = func() store.KVStore { switch *config.KVS { case "memory": return store.NewMemoryKVStore() case "file": db := store.NewSqliteKVStore(path.Join(*config.StoragePath, "kv-store.db"), true) if err := db.Open(); err != nil { 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")