bitcask-mirror/cmd/bitcaskd/main.go

63 lines
1.1 KiB
Go

package main
import (
"fmt"
"os"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
flag "github.com/spf13/pflag"
"git.tcp.direct/Mirrors/bitcask-mirror/internal"
)
var (
bind string
debug bool
version bool
)
func init() {
flag.Usage = func() {
fmt.Fprintf(os.Stderr, "Usage: %s [options] <dbpath>\n", os.Args[0])
flag.PrintDefaults()
}
flag.BoolVarP(&version, "version", "v", false, "display version information")
flag.BoolVarP(&debug, "debug", "d", false, "enable debug logging")
flag.StringVarP(&bind, "bind", "b", ":6379", "interface and port to bind to")
}
func main() {
flag.Parse()
if debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
} else {
zerolog.SetGlobalLevel(zerolog.InfoLevel)
}
if version {
fmt.Printf("bitcaskd version %s", internal.FullVersion())
os.Exit(0)
}
if len(flag.Args()) < 1 {
flag.Usage()
os.Exit(1)
}
path := flag.Arg(0)
server, err := newServer(bind, path)
if err != nil {
log.Error().Err(err).Msg("error creating server")
os.Exit(2)
}
if err = server.Run(); err != nil {
log.Fatal().Err(err).Msg("failed to start server")
}
}