68 lines
1.7 KiB
Go
Executable File
68 lines
1.7 KiB
Go
Executable File
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"gitea.inhome.blapointe.com/local/args"
|
|
"gitea.inhome.blapointe.com/local/logb"
|
|
"gitea.inhome.blapointe.com/local/storage"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
var (
|
|
Port string
|
|
OAuthServer string
|
|
Store storage.DB
|
|
StoreType string
|
|
StoreAddr string
|
|
StoreUser string
|
|
StorePass string
|
|
Root string
|
|
Config string
|
|
)
|
|
|
|
func init() {
|
|
Refresh()
|
|
}
|
|
|
|
func Refresh() {
|
|
if strings.Contains(fmt.Sprint(os.Args), " -test") {
|
|
return
|
|
}
|
|
|
|
as := args.NewArgSet()
|
|
as.Append(args.STRING, "port", "port to listen on", "49809")
|
|
as.Append(args.STRING, "oauth", "oauth URL", "")
|
|
as.Append(args.STRING, "storetype", "storage type", "map")
|
|
as.Append(args.STRING, "storeaddr", "storage address", "")
|
|
as.Append(args.STRING, "storeuser", "storage username", "")
|
|
as.Append(args.STRING, "storepass", "storage password", "")
|
|
as.Append(args.STRING, "root", "root for static files", "./public")
|
|
as.Append(args.STRING, "config", "cron config to load;; non-persisting", "")
|
|
as.Append(args.STRING, "level", "log level", "info")
|
|
if err := as.Parse(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
logb.Set(logb.LevelFromString(as.Get("level").GetString()))
|
|
|
|
Port = ":" + strings.TrimPrefix(as.Get("port").GetString(), ":")
|
|
OAuthServer = as.Get("oauth").GetString()
|
|
StoreType = as.Get("storetype").GetString()
|
|
StoreAddr = as.Get("storeaddr").GetString()
|
|
StoreUser = as.Get("storeuser").GetString()
|
|
StorePass = as.Get("storepass").GetString()
|
|
Root = as.Get("root").GetString()
|
|
Config = as.Get("config").GetString()
|
|
|
|
if Config != "" {
|
|
StoreType = "map"
|
|
}
|
|
|
|
if db, err := storage.New(storage.TypeFromString(StoreType), StoreAddr, StoreUser, StorePass); err != nil {
|
|
panic(err)
|
|
} else {
|
|
Store = db
|
|
}
|
|
}
|