@@ -11,25 +11,29 @@ import (
1111 "github.com/gobuffalo/packr/v2/file"
1212)
1313
14+ // DockerTemplator contains the templates relevent to docker
1415type DockerTemplator struct {
1516 ApplicationDocker * template.Template
1617 HttpGatewayDocker * template.Template
1718 DockerIgnore * template.Template
1819 DockerCompose * template.Template
1920}
2021
22+ // GoTemplator contains the templates relevant to a go project
2123type GoTemplator struct {
2224 GoMain * template.Template
2325 GoMod * template.Template
2426 GoModIDL * template.Template
2527 GoServer * template.Template
2628 GoHealthServer * template.Template
27- GoHttpGW * template.Template
29+ GoHTTPGW * template.Template
2830}
2931
32+ // Templator contains all the templates
3033type Templator struct {
3134 Commit0 * template.Template
3235 GitIgnore * template.Template
36+ Readme * template.Template
3337 MakefileTemplate * template.Template
3438 ProtoHealthTemplate * template.Template
3539 ProtoServiceTemplate * template.Template
@@ -39,89 +43,53 @@ type Templator struct {
3943}
4044
4145func NewTemplator (box * packr.Box ) * Templator {
42- makeFileTemplateSource , _ := box .FindString ("proto/makefile.tmpl" )
43- makeFileTemplate , _ := template .New ("ProtoToolTemplate" ).Parse (makeFileTemplateSource )
44-
45- protoHealthTemplateSource , _ := box .FindString ("proto/health_proto.tmpl" )
46- protoHealthTemplate , _ := template .New ("ProtoHealthTemplate" ).Parse (protoHealthTemplateSource )
47-
48- protoServiceTemplateSource , _ := box .FindString ("proto/service_proto.tmpl" )
49- protoServiceTemplate , _ := template .New ("ProtoServiceTemplate" ).Funcs (util .FuncMap ).Parse (protoServiceTemplateSource )
50-
5146 return & Templator {
52- MakefileTemplate : makeFileTemplate ,
53- ProtoHealthTemplate : protoHealthTemplate ,
54- ProtoServiceTemplate : protoServiceTemplate ,
47+ MakefileTemplate : NewSingleFileTemplator ( box , "proto/makefile.tmpl" ) ,
48+ ProtoHealthTemplate : NewSingleFileTemplator ( box , "proto/health_proto.tmpl" ) ,
49+ ProtoServiceTemplate : NewSingleFileTemplator ( box , "proto/service_proto.tmpl" ) ,
5550 Go : NewGoTemplator (box ),
56- Commit0 : NewCommit0Templator (box ),
57- GitIgnore : NewGitIgnoreTemplator (box ),
51+ Commit0 : NewSingleFileTemplator (box , "commit0/commit0.tmpl" ),
52+ GitIgnore : NewSingleFileTemplator (box , "util/gitignore.tmpl" ),
53+ Readme : NewSingleFileTemplator (box , "util/README.tmpl" ),
5854 Docker : NewDockerFileTemplator (box ),
5955 React : NewDirectoryTemplator (box , "react" ),
6056 }
6157}
6258
6359func NewGoTemplator (box * packr.Box ) * GoTemplator {
64- goServerTemplateSource , _ := box .FindString ("golang/server.tmpl" )
65- goServerTemplate , _ := template .New ("GoServerTemplate" ).Funcs (util .FuncMap ).Parse (goServerTemplateSource )
66-
67- goHealthTemplateSource , _ := box .FindString ("golang/health_server.tmpl" )
68- goHealthServerTemplate , _ := template .New ("GoHealthServerTemplate" ).Parse (goHealthTemplateSource )
69-
70- goModTemplateSource , _ := box .FindString ("golang/go_mod.tmpl" )
71- goModTemplate , _ := template .New ("GoModTemplate" ).Parse (goModTemplateSource )
72-
73- goModIDLTemplateSource , _ := box .FindString ("golang/go_mod_idl.tmpl" )
74- goModIDLTemplate , _ := template .New ("GoModTemplate" ).Parse (goModIDLTemplateSource )
75-
76- goMainTemplateSource , _ := box .FindString ("golang/main.tmpl" )
77- goMainTemplate , _ := template .New ("GoMainTemplate" ).Funcs (util .FuncMap ).Parse (goMainTemplateSource )
78-
79- goHttpTemplateSource , _ := box .FindString ("golang/http_gw.tmpl" )
80- goHttpTemplate , _ := template .New ("GoHttpGWTemplate" ).Funcs (util .FuncMap ).Parse (goHttpTemplateSource )
81-
8260 return & GoTemplator {
83- GoMain : goMainTemplate ,
84- GoMod : goModTemplate ,
85- GoModIDL : goModIDLTemplate ,
86- GoServer : goServerTemplate ,
87- GoHealthServer : goHealthServerTemplate ,
88- GoHttpGW : goHttpTemplate ,
61+ GoMain : NewSingleFileTemplator ( box , "golang/main.tmpl" ) ,
62+ GoMod : NewSingleFileTemplator ( box , "golang/go_mod.tmpl" ) ,
63+ GoModIDL : NewSingleFileTemplator ( box , "golang/go_mod_idl.tmpl" ) ,
64+ GoServer : NewSingleFileTemplator ( box , "golang/server.tmpl" ) ,
65+ GoHealthServer : NewSingleFileTemplator ( box , "golang/health_server.tmpl" ) ,
66+ GoHTTPGW : NewSingleFileTemplator ( box , "golang/http_gw.tmpl" ) ,
8967 }
9068
9169}
9270
93- func NewCommit0Templator (box * packr.Box ) * template.Template {
94- templateSource , _ := box .FindString ("commit0/commit0.tmpl" )
95- template , _ := template .New ("Commit0Template" ).Funcs (util .FuncMap ).Parse (templateSource )
96-
97- return template
98- }
99-
100- func NewGitIgnoreTemplator (box * packr.Box ) * template.Template {
101- templateSource , _ := box .FindString ("util/gitignore.tmpl" )
102- template , _ := template .New ("GitIgnore" ).Parse (templateSource )
103- return template
104- }
105-
10671func NewDockerFileTemplator (box * packr.Box ) * DockerTemplator {
107- appTemplateSource , _ := box .FindString ("docker/dockerfile_app.tmpl" )
108- appTemplate , _ := template .New ("AppDockerfile" ).Parse (appTemplateSource )
109-
110- httpTemplateSource , _ := box .FindString ("docker/dockerfile_http.tmpl" )
111- httpTemplate , _ := template .New ("HttpDockerfile" ).Parse (httpTemplateSource )
112-
113- ignoreTemplateSource , _ := box .FindString ("docker/dockerignore.tmpl" )
114- ignoreTemplate , _ := template .New ("Dockerignore" ).Parse (ignoreTemplateSource )
72+ return & DockerTemplator {
73+ ApplicationDocker : NewSingleFileTemplator (box , "docker/dockerfile_app.tmpl" ),
74+ HttpGatewayDocker : NewSingleFileTemplator (box , "docker/dockerfile_http.tmpl" ),
75+ DockerIgnore : NewSingleFileTemplator (box , "docker/dockerignore.tmpl" ),
76+ DockerCompose : NewSingleFileTemplator (box , "docker/dockercompose.tmpl" ),
77+ }
78+ }
11579
116- composeTemplateSource , _ := box .FindString ("docker/dockercompose.tmpl" )
117- composeTemplate , _ := template .New ("Dockercompose" ).Parse (composeTemplateSource )
80+ // NewSingleFileTemplator returns a template struct for a given template file
81+ func NewSingleFileTemplator (box * packr.Box , file string ) * template.Template {
82+ source , err := box .FindString (file )
83+ if err != nil {
84+ panic (err )
85+ }
11886
119- return & DockerTemplator {
120- ApplicationDocker : appTemplate ,
121- HttpGatewayDocker : httpTemplate ,
122- DockerIgnore : ignoreTemplate ,
123- DockerCompose : composeTemplate ,
87+ t , err := template .New (file ).Funcs (util .FuncMap ).Parse (source )
88+ if err != nil {
89+ panic (err )
12490 }
91+
92+ return t
12593}
12694
12795type DirectoryTemplator struct {
0 commit comments