|
10 | 10 | package main
|
11 | 11 |
|
12 | 12 | import (
|
13 |
| - "bufio" |
14 | 13 | "bytes"
|
15 | 14 | "fmt"
|
| 15 | + "go/format" |
16 | 16 | "io/ioutil"
|
17 | 17 | "os"
|
18 | 18 | "unicode/utf8"
|
@@ -83,27 +83,28 @@ func makestatic() error {
|
83 | 83 | return err
|
84 | 84 | }
|
85 | 85 | defer f.Close()
|
86 |
| - w := bufio.NewWriter(f) |
87 |
| - fmt.Fprintf(w, "%v\npackage static\n\n", warning) |
88 |
| - fmt.Fprintf(w, "var Files = map[string]string{\n") |
| 86 | + buf := new(bytes.Buffer) |
| 87 | + fmt.Fprintf(buf, "%v\npackage static\n\n", warning) |
| 88 | + fmt.Fprintf(buf, "var Files = map[string]string{\n") |
89 | 89 | for _, fn := range files {
|
90 | 90 | b, err := ioutil.ReadFile(fn)
|
91 | 91 | if err != nil {
|
92 | 92 | return err
|
93 | 93 | }
|
94 |
| - fmt.Fprintf(w, "\t%q: ", fn) |
| 94 | + fmt.Fprintf(buf, "\t%q: ", fn) |
95 | 95 | if utf8.Valid(b) {
|
96 |
| - fmt.Fprintf(w, "`%s`", sanitize(b)) |
| 96 | + fmt.Fprintf(buf, "`%s`", sanitize(b)) |
97 | 97 | } else {
|
98 |
| - fmt.Fprintf(w, "%q", b) |
| 98 | + fmt.Fprintf(buf, "%q", b) |
99 | 99 | }
|
100 |
| - fmt.Fprintln(w, ",\n") |
| 100 | + fmt.Fprintln(buf, ",\n") |
101 | 101 | }
|
102 |
| - fmt.Fprintln(w, "}") |
103 |
| - if err := w.Flush(); err != nil { |
| 102 | + fmt.Fprintln(buf, "}") |
| 103 | + fmtbuf, err := format.Source(buf.Bytes()) |
| 104 | + if err != nil { |
104 | 105 | return err
|
105 | 106 | }
|
106 |
| - return f.Close() |
| 107 | + return ioutil.WriteFile("static.go", fmtbuf, 0666) |
107 | 108 | }
|
108 | 109 |
|
109 | 110 | // sanitize prepares a valid UTF-8 string as a raw string constant.
|
|
0 commit comments