Add multilingual support, competition close/reopen, and backup directory
This commit is contained in:
@@ -21,18 +21,21 @@ type Config struct {
|
||||
Addr string `json:"addr"`
|
||||
DBPath string `json:"db_path"`
|
||||
RulesDir string `json:"rules_dir"`
|
||||
BackupDir string `json:"backup_dir"`
|
||||
CORSOrigins []string `json:"cors_origins"`
|
||||
CrossSiteCookies bool `json:"cross_site_cookies"`
|
||||
}
|
||||
|
||||
var corsOrigins []string
|
||||
var crossSiteCookies bool
|
||||
var backupDir string
|
||||
|
||||
func defaultConfig() *Config {
|
||||
return &Config{
|
||||
Addr: ":8080",
|
||||
DBPath: "penaltytracker.db",
|
||||
RulesDir: "rules",
|
||||
BackupDir: "backup",
|
||||
CORSOrigins: []string{},
|
||||
CrossSiteCookies: false,
|
||||
}
|
||||
@@ -78,6 +81,9 @@ func loadConfig(path string) (*Config, error) {
|
||||
if cfg.RulesDir == "" {
|
||||
cfg.RulesDir = "rules"
|
||||
}
|
||||
if cfg.BackupDir == "" {
|
||||
cfg.BackupDir = "backup"
|
||||
}
|
||||
for i, o := range cfg.CORSOrigins {
|
||||
cfg.CORSOrigins[i] = strings.TrimSpace(o)
|
||||
}
|
||||
@@ -95,6 +101,9 @@ func ensureDirectories(cfg *Config) error {
|
||||
if err := ensureDir(cfg.RulesDir); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := ensureDir(cfg.BackupDir); err != nil {
|
||||
return err
|
||||
}
|
||||
if dbDir := filepath.Dir(cfg.DBPath); dbDir != "" {
|
||||
if err := ensureDir(dbDir); err != nil {
|
||||
return err
|
||||
@@ -118,6 +127,7 @@ func main() {
|
||||
|
||||
corsOrigins = cfg.CORSOrigins
|
||||
crossSiteCookies = cfg.CrossSiteCookies
|
||||
backupDir = cfg.BackupDir
|
||||
|
||||
if err := openDB(cfg.DBPath); err != nil {
|
||||
log.Fatalf("db open: %v", err)
|
||||
|
||||
Reference in New Issue
Block a user