@@ -13,13 +13,19 @@ import (
1313)
1414
1515//go:embed templates/main.go.tmpl
16- var goServerMainTemplate string
16+ var mainTemplate string
1717
1818//go:embed templates/game.go.tmpl
19- var goServerGameTemplate string
19+ var gameTemplate string
2020
2121//go:embed templates/event_definitions.go.tmpl
22- var goServerEventsTemplate string
22+ var eventsTemplate string
23+
24+ //go:embed templates/Dockerfile.tmpl
25+ var dockerfileTemplate string
26+
27+ //go:embed templates/dockerignore.tmpl
28+ var dockerignoreTemplate string
2329
2430func CreateNewServer (projectName , libraryVersion string ) error {
2531 module , err := cli .Input ("Project module path:" )
@@ -33,7 +39,7 @@ func CreateNewServer(projectName, libraryVersion string) error {
3339 }
3440
3541 cli .Begin ("Installing correct go-server version..." )
36- libraryURL , libraryTag , err := getServerLibraryURL (libraryVersion )
42+ libraryURL , libraryTag , err := getLibraryURL (libraryVersion )
3743 if err != nil {
3844 return err
3945 }
@@ -45,7 +51,7 @@ func CreateNewServer(projectName, libraryVersion string) error {
4551 cli .Finish ()
4652
4753 cli .Begin ("Creating project template..." )
48- err = createGoServerTemplate (projectName , module , libraryURL )
54+ err = createTemplate (projectName , module , libraryURL )
4955 if err != nil {
5056 return err
5157 }
@@ -60,39 +66,36 @@ func CreateNewServer(projectName, libraryVersion string) error {
6066
6167 cli .Finish ()
6268
63- cli .Begin ("Organizing imports..." )
69+ return nil
70+ }
6471
65- if ! util .IsInstalled ("goimports" ) {
66- cli .Warn ("Failed to organize import statements: 'goimports' is not installed!" )
67- return nil
72+ func createTemplate (projectName , module , libraryURL string ) error {
73+ err := executeTemplate (mainTemplate , "main.go" , projectName , libraryURL , module )
74+ if err != nil {
75+ return err
6876 }
69- util .Execute (true , "goimports" , "-w" , "main.go" )
70-
71- packageDir := strings .ReplaceAll (strings .ReplaceAll (projectName , "_" , "" ), "-" , "" )
72- util .Execute (true , "goimports" , "-w" , filepath .Join (packageDir , "game.go" ))
7377
74- cli . Finish ( )
75-
76- return nil
77- }
78+ err = executeTemplate ( dockerfileTemplate , "Dockerfile" , projectName , libraryURL , module )
79+ if err != nil {
80+ return err
81+ }
7882
79- func createGoServerTemplate (projectName , module , libraryURL string ) error {
80- err := executeGoServerTemplate (goServerMainTemplate , "main.go" , projectName , libraryURL , module )
83+ err = executeTemplate (dockerignoreTemplate , ".dockerignore" , projectName , libraryURL , module )
8184 if err != nil {
8285 return err
8386 }
8487
8588 packageName := strings .ReplaceAll (strings .ReplaceAll (projectName , "_" , "" ), "-" , "" )
8689
87- err = executeGoServerTemplate ( goServerGameTemplate , filepath .Join (packageName , "game.go" ), projectName , libraryURL , module )
90+ err = executeTemplate ( gameTemplate , filepath .Join (packageName , "game.go" ), projectName , libraryURL , module )
8891 if err != nil {
8992 return err
9093 }
9194
92- return executeGoServerTemplate ( goServerEventsTemplate , filepath .Join (packageName , "event_definitions.go" ), projectName , libraryURL , module )
95+ return executeTemplate ( eventsTemplate , filepath .Join (packageName , "event_definitions.go" ), projectName , libraryURL , module )
9396}
9497
95- func executeGoServerTemplate (templateText , fileName , projectName , libraryURL , modulePath string ) error {
98+ func executeTemplate (templateText , fileName , projectName , libraryURL , modulePath string ) error {
9699 type data struct {
97100 Name string
98101 PackageName string
@@ -108,7 +111,7 @@ func executeGoServerTemplate(templateText, fileName, projectName, libraryURL, mo
108111 })
109112}
110113
111- func getServerLibraryURL (serverVersion string ) (url string , tag string , err error ) {
114+ func getLibraryURL (serverVersion string ) (url string , tag string , err error ) {
112115 if serverVersion == "latest" {
113116 var err error
114117 serverVersion , err = util .LatestGithubTag ("code-game-project" , "go-server" )
0 commit comments