@@ -4,38 +4,59 @@ package main
4
4
5
5
import (
6
6
"bytes"
7
- "io "
7
+ "fmt "
8
8
"io/ioutil"
9
9
"log"
10
10
"net/http"
11
+ "text/template"
11
12
)
12
13
13
- func gen () error {
14
- resp , err := http .Get ("https://raw.githubusercontent.com/gopherjs/gopherjs/master/README.md" )
15
- if err != nil {
16
- return err
17
- }
18
- defer resp .Body .Close ()
19
- body , err := ioutil .ReadAll (resp .Body )
20
- if err != nil {
21
- return err
22
- }
14
+ func t (text string ) * template.Template {
15
+ return template .Must (template .New ("" ).Parse (text ))
16
+ }
23
17
24
- var buf bytes.Buffer
25
- io .WriteString (& buf , `---
18
+ // Filename -> Template.
19
+ var templates = map [string ]* template.Template {
20
+
21
+ "index.md" : t (`---
26
22
# generated by generate.go; DO NOT EDIT
27
23
layout: index
28
24
title: Home
29
25
permalink: /
30
26
---
31
27
32
- ` )
33
- _ , err = buf .Write (body )
28
+ {{.HTTPGet "https://raw.githubusercontent.com/gopherjs/gopherjs/master/README.md"}}` ),
29
+ }
30
+
31
+ type data struct {}
32
+
33
+ // HTTPGet fetches the contents at the given url.
34
+ func (data ) HTTPGet (url string ) (string , error ) {
35
+ resp , err := http .Get (url )
34
36
if err != nil {
35
- return err
37
+ return "" , err
36
38
}
39
+ defer resp .Body .Close ()
40
+ body , err := ioutil .ReadAll (resp .Body )
41
+ if err != nil {
42
+ return "" , err
43
+ }
44
+ return string (body ), nil
45
+ }
37
46
38
- ioutil .WriteFile ("index.md" , buf .Bytes (), 0644 )
47
+ func gen () error {
48
+ for filename , t := range templates {
49
+ var buf bytes.Buffer
50
+ err := t .Execute (& buf , data {})
51
+ if err != nil {
52
+ return err
53
+ }
54
+ fmt .Println ("writing" , filename )
55
+ err = ioutil .WriteFile (filename , buf .Bytes (), 0644 )
56
+ if err != nil {
57
+ return err
58
+ }
59
+ }
39
60
40
61
return nil
41
62
}
0 commit comments