diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index e4dc3c26a99..e8e0a228fe0 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -12,6 +12,7 @@ import ( "os" "path" "path/filepath" + "runtime" "strconv" "strings" "time" @@ -48,6 +49,9 @@ const ( authProxySyncTTL = 60 ) +// zoneInfo names environment variable for setting the path to look for the timezone database in go +const zoneInfo = "ZONEINFO" + var ( // App settings. Env = Dev @@ -757,6 +761,14 @@ func (cfg *Cfg) validateStaticRootPath() error { func (cfg *Cfg) Load(args *CommandLineArgs) error { setHomePath(args) + // Fix for missing IANA db on Windows + _, zoneInfoSet := os.LookupEnv(zoneInfo) + if runtime.GOOS == "windows" && !zoneInfoSet { + if err := os.Setenv(zoneInfo, filepath.Join(HomePath, "tools", "zoneinfo.zip")); err != nil { + cfg.Logger.Error("Can't set ZONEINFO environment variable", "err", err) + } + } + iniFile, err := cfg.loadConfiguration(args) if err != nil { return err