place/config/config.go

37 lines
1.0 KiB
Go

package config
import (
"flag"
"github.com/redis/go-redis/v9"
)
type Config struct {
Address string
StoragePath string
TileSize int
CanvasSize int
SaveFrequency int
Timeout int
Redis redis.Options
}
var conf *Config = nil
func GetConfig() Config {
if conf == nil {
conf = &Config{}
flag.StringVar(&conf.Address, "address", ":8080", "API base")
flag.StringVar(&conf.StoragePath, "storage", "/data", "image storage path")
flag.IntVar(&conf.TileSize, "tile_size", 128, "width of a tile")
flag.IntVar(&conf.CanvasSize, "canvas_size", 4, "width of the canvas (in tiles)")
flag.IntVar(&conf.SaveFrequency, "save", 60, "seconds between saves")
flag.IntVar(&conf.Timeout, "timeout", 60, "timeout after placing a pixel")
flag.StringVar(&conf.Redis.Addr, "redis_address", "redis:6379", "address of the redis server")
flag.StringVar(&conf.Redis.Password, "redis_password", "redis", "password of the redis server")
flag.IntVar(&conf.Redis.DB, "redis_db", 0, "redis db")
flag.Parse()
}
return *conf
}