@@ -13,13 +13,19 @@ import (
13
13
)
14
14
15
15
//go:embed templates/main.go.tmpl
16
- var goServerMainTemplate string
16
+ var mainTemplate string
17
17
18
18
//go:embed templates/game.go.tmpl
19
- var goServerGameTemplate string
19
+ var gameTemplate string
20
20
21
21
//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
23
29
24
30
func CreateNewServer (projectName , libraryVersion string ) error {
25
31
module , err := cli .Input ("Project module path:" )
@@ -33,7 +39,7 @@ func CreateNewServer(projectName, libraryVersion string) error {
33
39
}
34
40
35
41
cli .Begin ("Installing correct go-server version..." )
36
- libraryURL , libraryTag , err := getServerLibraryURL (libraryVersion )
42
+ libraryURL , libraryTag , err := getLibraryURL (libraryVersion )
37
43
if err != nil {
38
44
return err
39
45
}
@@ -45,7 +51,7 @@ func CreateNewServer(projectName, libraryVersion string) error {
45
51
cli .Finish ()
46
52
47
53
cli .Begin ("Creating project template..." )
48
- err = createGoServerTemplate (projectName , module , libraryURL )
54
+ err = createTemplate (projectName , module , libraryURL )
49
55
if err != nil {
50
56
return err
51
57
}
@@ -60,39 +66,36 @@ func CreateNewServer(projectName, libraryVersion string) error {
60
66
61
67
cli .Finish ()
62
68
63
- cli .Begin ("Organizing imports..." )
69
+ return nil
70
+ }
64
71
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
68
76
}
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" ))
73
77
74
- cli . Finish ( )
75
-
76
- return nil
77
- }
78
+ err = executeTemplate ( dockerfileTemplate , "Dockerfile" , projectName , libraryURL , module )
79
+ if err != nil {
80
+ return err
81
+ }
78
82
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 )
81
84
if err != nil {
82
85
return err
83
86
}
84
87
85
88
packageName := strings .ReplaceAll (strings .ReplaceAll (projectName , "_" , "" ), "-" , "" )
86
89
87
- err = executeGoServerTemplate ( goServerGameTemplate , filepath .Join (packageName , "game.go" ), projectName , libraryURL , module )
90
+ err = executeTemplate ( gameTemplate , filepath .Join (packageName , "game.go" ), projectName , libraryURL , module )
88
91
if err != nil {
89
92
return err
90
93
}
91
94
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 )
93
96
}
94
97
95
- func executeGoServerTemplate (templateText , fileName , projectName , libraryURL , modulePath string ) error {
98
+ func executeTemplate (templateText , fileName , projectName , libraryURL , modulePath string ) error {
96
99
type data struct {
97
100
Name string
98
101
PackageName string
@@ -108,7 +111,7 @@ func executeGoServerTemplate(templateText, fileName, projectName, libraryURL, mo
108
111
})
109
112
}
110
113
111
- func getServerLibraryURL (serverVersion string ) (url string , tag string , err error ) {
114
+ func getLibraryURL (serverVersion string ) (url string , tag string , err error ) {
112
115
if serverVersion == "latest" {
113
116
var err error
114
117
serverVersion , err = util .LatestGithubTag ("code-game-project" , "go-server" )
0 commit comments