package main import ( "flag" "time" "weatherstation/internal/radarfetch" ) func main() { var outRoot string var interval time.Duration var tz int var z, y, x int var chinaURL, huananURL, nanningURL, cmaBase string flag.StringVar(&outRoot, "out-root", "./radar_data", "output root directory for radar data") flag.DurationVar(&interval, "interval", 10*time.Minute, "download interval") flag.IntVar(&tz, "tz-offset", 8, "local tz offset to UTC (hours)") flag.IntVar(&z, "z", 7, "tile z") flag.IntVar(&y, "y", 40, "tile y") flag.IntVar(&x, "x", 102, "tile x") flag.StringVar(&chinaURL, "nmc-china-url", "https://www.nmc.cn/publish/radar/chinaall.html", "NMC China page URL") flag.StringVar(&huananURL, "nmc-huanan-url", "https://www.nmc.cn/publish/radar/huanan.html", "NMC Huanan page URL") flag.StringVar(&nanningURL, "nmc-nanning-url", "https://www.nmc.cn/publish/radar/guang-xi/nan-ning.htm", "NMC Nanning page URL") flag.StringVar(&cmaBase, "cma-base", "https://image.data.cma.cn", "CMA base URL") var once bool flag.BoolVar(&once, "once", false, "run a single cycle and exit") flag.Parse() opts := radarfetch.Options{ OutRoot: outRoot, TZOffset: tz, Interval: interval, NMCChinaURL: chinaURL, NMCHuananURL: huananURL, NMCNanningURL: nanningURL, CMABase: cmaBase, Z: z, Y: y, X: x, } if once { _ = radarfetch.RunOnce(opts) return } radarfetch.Run(opts) }