diff --git a/cmd/fetch/fetch.go b/cmd/fetch/fetch.go index 98f7d66..863cf77 100644 --- a/cmd/fetch/fetch.go +++ b/cmd/fetch/fetch.go @@ -9,54 +9,54 @@ import ( "os" ) -func main() { +func run() error { var root []root err := os.Mkdir("hoods", 0777) if err != nil { - log.Panic(err) + return err } req, err := http.NewRequest(http.MethodGet, "https://keyserver.freifunk-franken.de/v2/hoods.php", nil) if err != nil { - log.Panic(err) + return err } res, err := http.DefaultClient.Do(req) if err != nil { - log.Panic(err) + return err } body, err := io.ReadAll(res.Body) if err != nil { - log.Panic(err) + return err } err = json.Unmarshal(body, &root) if err != nil { - log.Panic(err) + return err } for _, h := range root { var hood Hood req, err := http.NewRequest(http.MethodGet, fmt.Sprintf("https://keyserver.freifunk-franken.de/v2/?hoodid=%d", h.Id), nil) if err != nil { - log.Panic(err) + return err } res, err := http.DefaultClient.Do(req) if err != nil { - log.Panic(err) + return err } body, err := io.ReadAll(res.Body) if err != nil { - log.Panic(err) + return err } err = json.Unmarshal(body, &hood) if err != nil { - log.Panic(err) + return err } if len(h.Polygons) == 0 { @@ -70,12 +70,19 @@ func main() { b, err := json.MarshalIndent(hood, "", " ") if err != nil { - log.Panic(err) + return err } err = os.WriteFile("hoods/"+hood.HoodInfo.Name+".json", b, 0666) if err != nil { - log.Panic(err) + return err } } + return nil +} + +func main() { + if err := run(); err != nil { + log.Fatal(err) + } }