49 lines
1.0 KiB
Go
49 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
actions "./actions"
|
|
serializer "./serializer"
|
|
server "./server"
|
|
storage "./storage"
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"path"
|
|
)
|
|
|
|
var addr = flag.String("addr", "tcp://127.0.0.1:12345", "zeromq address to listen to")
|
|
var db = flag.String("db", fmt.Sprintf(".%cevents", os.PathSeparator), "path for storage")
|
|
var buildTypeIndexes = flag.Bool("buildTypeIndexes", false, "Build type indexes")
|
|
|
|
func PathIsAbsolute(s string) bool {
|
|
if len(s) > 1 && s[1] == ':' {
|
|
return true
|
|
}
|
|
return path.IsAbs(s)
|
|
}
|
|
|
|
func main() {
|
|
fmt.Println("GoES - Go Event Store")
|
|
fmt.Println("Released under the MIT license. See LICENSE file.")
|
|
fmt.Println()
|
|
|
|
flag.Parse()
|
|
|
|
storagePath := *db
|
|
if !PathIsAbsolute(storagePath) {
|
|
wd, _ := os.Getwd()
|
|
storagePath = path.Join(wd, storagePath)
|
|
}
|
|
|
|
diskStorage := storage.NewDailyDiskStorage(storagePath)
|
|
if *buildTypeIndexes {
|
|
diskStorage.RebuildTypeIndexes()
|
|
return
|
|
}
|
|
|
|
var handler = actions.NewActionsHandler(diskStorage, serializer.NewPassthruSerializer())
|
|
server.Bind(*addr)
|
|
server.Listen(handler)
|
|
server.Destroy()
|
|
}
|