Add multilingual support, competition close/reopen, and backup directory

This commit is contained in:
Jan Meinl
2026-05-17 09:18:34 +02:00
parent bb9f3cd3eb
commit 777f11d93c
18 changed files with 1039 additions and 433 deletions
+10
View File
@@ -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)