ft-sync/config/server/config.go
Simon Vieille 3fd4f19009 server: add verbosity level
server: remove filename from log (fix #1)
2024-09-01 23:49:08 +02:00

52 lines
1.1 KiB
Go

package server
import (
"flag"
"os"
"gitnet.fr/deblan/freetube-sync/logger"
)
type Config struct {
BindAddress string
DbPath string
LogLevel int
}
var config *Config
func GetConfig() *Config {
if config == nil {
config = &Config{}
}
return config
}
func (c *Config) Define(bindAddress, dbPath string, logErrorLevel, logWarnLevel, logInfoLevel bool) {
c.BindAddress = bindAddress
c.DbPath = dbPath
if logInfoLevel {
c.LogLevel = int(logger.Info)
} else if logErrorLevel {
c.LogLevel = int(logger.Error)
} else if logWarnLevel {
c.LogLevel = int(logger.Warn)
} else if logInfoLevel {
c.LogLevel = int(logger.Info)
} else {
c.LogLevel = int(logger.Silent)
}
}
func InitConfig() {
dbPath := flag.String("d", os.Getenv("HOME")+"/freetube.sqlite", "Path to SQlite database")
bindAddress := flag.String("b", ":1323", "Bind address")
logErrorLevel := flag.Bool("v", false, "Log errors")
logWarnLevel := flag.Bool("vv", false, "Log warns")
logInfoLevel := flag.Bool("vvv", false, "Log infos")
flag.Parse()
GetConfig().Define(*bindAddress, *dbPath, *logErrorLevel, *logWarnLevel, *logInfoLevel)
}