Skip to content
This repository has been archived by the owner on Nov 12, 2022. It is now read-only.

Commit

Permalink
Use go generate (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
ohkinozomu committed Feb 24, 2022
1 parent 1f854a5 commit c4a3e4b
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 16 deletions.
3 changes: 3 additions & 0 deletions Makefile
Expand Up @@ -5,3 +5,6 @@ test:

fmt:
@go fmt ./...

generate:
@go generate ./...
2 changes: 2 additions & 0 deletions data.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions go.mod
@@ -1,3 +1,5 @@
module github.com/ohkinozomu/gcp-regions

go 1.17

require github.com/sanity-io/litter v1.5.2 // indirect
5 changes: 5 additions & 0 deletions go.sum
@@ -0,0 +1,5 @@
github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sanity-io/litter v1.5.2 h1:AnC8s9BMORWH5a4atZ4D6FPVvKGzHcnc5/IVTa87myw=
github.com/sanity-io/litter v1.5.2/go.mod h1:5Z71SvaYy5kcGtyglXOC9rrUi3c1E8CamFWjQsazTh0=
github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
3 changes: 3 additions & 0 deletions regions.go
@@ -1,3 +1,6 @@
//go:generate go run tools/generator/generate.go
//go:generate gofmt -w data.go

package regions

func IsValid(name string) bool {
Expand Down
35 changes: 29 additions & 6 deletions tools/generator/generate.go
Expand Up @@ -3,10 +3,12 @@
package main

import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"os"
"strings"

"github.com/sanity-io/litter"
Expand All @@ -19,23 +21,44 @@ type Region struct {
Longitude float64 `json:"longitude"`
}

func main() {
func generate() (string, error) {
regionsJsonURL := "https://raw.githubusercontent.com/GoogleCloudPlatform/region-picker/main/data/regions.json"
resp, err := http.Get(regionsJsonURL)
if err != nil {
panic(err)
return "", err
}
defer resp.Body.Close()

regionData, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
return "", err
}

var m map[string]Region
if err := json.Unmarshal(regionData, &m); err != nil {
panic(err)
return "", err
}

fmt.Println(strings.Replace(litter.Sdump(m), "main.Region", "Region", -1))
return strings.Replace(litter.Sdump(m), "main.Region", "Region", -1), err
}

func main() {
var out bytes.Buffer
out.Reset()
out.WriteString(`// Code generated by tools/generator/generate.go; DO NOT EDIT.
package regions
var REGION_DATA = `)

generated, err := generate()
if err != nil {
log.Fatal(err)
}
out.WriteString(generated)

const target = "data.go"
if err := os.WriteFile(target, out.Bytes(), 0644); err != nil {
log.Fatal(err)
}
}
5 changes: 0 additions & 5 deletions tools/generator/go.mod

This file was deleted.

5 changes: 0 additions & 5 deletions tools/generator/go.sum

This file was deleted.

0 comments on commit c4a3e4b

Please sign in to comment.