123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package model
- import (
- "bytes"
- "go/format"
- "io"
- "text/template"
- )
- // GenerateEndpoints writes a Go file to the given writer.
- func GenerateEndpoints(endpoints interface{}, w io.Writer) error {
- tmpl, err := template.New("endpoints").Parse(t)
- if err != nil {
- return err
- }
- out := bytes.NewBuffer(nil)
- if err := tmpl.Execute(out, endpoints); err != nil {
- return err
- }
- b, err := format.Source(bytes.TrimSpace(out.Bytes()))
- if err != nil {
- return err
- }
- _, err = io.Copy(w, bytes.NewReader(b))
- return err
- }
- const t = `
- package endpoints
- // THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
- type endpointStruct struct {
- Version int
- Endpoints map[string]endpointEntry
- }
- type endpointEntry struct {
- Endpoint string
- SigningRegion string
- }
- var endpointsMap = endpointStruct{
- Version: {{ .Version }},
- Endpoints: map[string]endpointEntry{
- {{ range $key, $entry := .Endpoints }}"{{ $key }}": endpointEntry{
- Endpoint: "{{ $entry.Endpoint }}",
- {{ if ne $entry.SigningRegion "" }}SigningRegion: "{{ $entry.SigningRegion }}",
- {{ end }}
- },
- {{ end }}
- },
- }
- `
|