@@ -2,14 +2,15 @@ package client
22
33import (
44 "fmt"
5+ "net/http"
56 "path/filepath"
67 "strings"
78
89 _ "embed"
910
10- "github.com/code-game-project/codegame-cli-go/util "
11+ "github.com/code-game-project/codegame-cli-go/new "
1112 "github.com/code-game-project/codegame-cli/cli"
12- "github.com/code-game-project/codegame-cli/external "
13+ "github.com/code-game-project/codegame-cli/util "
1314)
1415
1516//go:embed templates/main.go.tmpl
@@ -30,11 +31,8 @@ func CreateNewClient(projectName, gameName, serverURL, libraryVersion string, su
3031 return err
3132 }
3233
33- out , err := external . ExecuteHidden ( "go" , "mod" , "init" , module )
34+ _ , err = util . Execute ( true , "go" , "mod" , "init" , module )
3435 if err != nil {
35- if out != "" {
36- cli .Error (out )
37- }
3836 return err
3937 }
4038
@@ -52,11 +50,8 @@ func CreateNewClient(projectName, gameName, serverURL, libraryVersion string, su
5250 }
5351
5452 cli .Begin ("Installing correct go-client version..." )
55- out , err = external . ExecuteHidden ( "go" , "get" , fmt .Sprintf ("%s@%s" , libraryURL , libraryTag ))
53+ _ , err = util . Execute ( true , "go" , "get" , fmt .Sprintf ("%s@%s" , libraryURL , libraryTag ))
5654 if err != nil {
57- if out != "" {
58- cli .Error (out )
59- }
6055 return err
6156 }
6257 cli .Finish ()
@@ -70,23 +65,20 @@ func CreateNewClient(projectName, gameName, serverURL, libraryVersion string, su
7065
7166 cli .Begin ("Installing dependencies..." )
7267
73- out , err = external . ExecuteHidden ( "go" , "mod" , "tidy" )
68+ _ , err = util . Execute ( true , "go" , "mod" , "tidy" )
7469 if err != nil {
75- if out != "" {
76- cli .Error (out )
77- }
7870 return err
7971 }
8072
8173 cli .Finish ()
8274
8375 cli .Begin ("Organizing imports..." )
8476
85- if ! external .IsInstalled ("goimports" ) {
77+ if ! util .IsInstalled ("goimports" ) {
8678 cli .Warn ("Failed to organize import statements: 'goimports' is not installed!" )
8779 return nil
8880 }
89- external . ExecuteHidden ( "goimports" , "-w" , "main.go" )
81+ util . Execute ( true , "goimports" , "-w" , "main.go" )
9082
9183 cli .Finish ()
9284
@@ -98,7 +90,7 @@ func createGoClientTemplate(projectName, modulePath, gameName, serverURL, librar
9890 return execGoClientMainTemplate (projectName , serverURL , libraryURL )
9991 }
10092
101- cgeVersion , err := external .GetCGEVersion (util . BaseURL (serverURL , util . IsSSL (serverURL )))
93+ cgeVersion , err := util .GetCGEVersion (baseURL (serverURL , isSSL (serverURL )))
10294 if err != nil {
10395 return err
10496 }
@@ -109,15 +101,15 @@ func createGoClientTemplate(projectName, modulePath, gameName, serverURL, librar
109101func getGoClientLibraryURL (clientVersion string ) (url string , tag string , err error ) {
110102 if clientVersion == "latest" {
111103 var err error
112- clientVersion , err = external .LatestGithubTag ("code-game-project" , "go-client" )
104+ clientVersion , err = util .LatestGithubTag ("code-game-project" , "go-client" )
113105 if err != nil {
114106 return "" , "" , err
115107 }
116108 clientVersion = strings .TrimPrefix (strings .Join (strings .Split (clientVersion , "." )[:2 ], "." ), "v" )
117109 }
118110
119111 majorVersion := strings .Split (clientVersion , "." )[0 ]
120- tag , err = external .GithubTagFromVersion ("code-game-project" , "go-client" , clientVersion )
112+ tag , err = util .GithubTagFromVersion ("code-game-project" , "go-client" , clientVersion )
121113 if err != nil {
122114 return "" , "" , err
123115 }
@@ -135,7 +127,7 @@ func execGoClientMainTemplate(projectName, serverURL, libraryURL string) error {
135127 LibraryURL string
136128 }
137129
138- return util .ExecTemplate (goClientMainTemplate , "main.go" , data {
130+ return new .ExecTemplate (goClientMainTemplate , "main.go" , data {
139131 URL : serverURL ,
140132 LibraryURL : libraryURL ,
141133 })
@@ -146,7 +138,7 @@ func execGoClientWrappersTemplate(projectName, modulePath, gameName, serverURL,
146138
147139 gameDir := strings .ReplaceAll (strings .ReplaceAll (gameName , "-" , "" ), "_" , "" )
148140
149- eventNames , err := external .GetEventNames (util . BaseURL (serverURL , util . IsSSL (serverURL )), cgeVersion )
141+ eventNames , err := util .GetEventNames (baseURL (serverURL , isSSL (serverURL )), cgeVersion )
150142 if err != nil {
151143 return err
152144 }
@@ -181,20 +173,37 @@ func execGoClientWrappersTemplate(projectName, modulePath, gameName, serverURL,
181173 Events : events ,
182174 }
183175
184- err = util .ExecTemplate (goClientWrapperMainTemplate , filepath .Join ("main.go" ), data )
176+ err = new .ExecTemplate (goClientWrapperMainTemplate , filepath .Join ("main.go" ), data )
185177 if err != nil {
186178 return err
187179 }
188180
189- err = util .ExecTemplate (goClientWrapperGameTemplate , filepath .Join (gameDir , "game.go" ), data )
181+ err = new .ExecTemplate (goClientWrapperGameTemplate , filepath .Join (gameDir , "game.go" ), data )
190182 if err != nil {
191183 return err
192184 }
193185
194- err = util .ExecTemplate (goClientWrapperEventsTemplate , filepath .Join (gameDir , "events.go" ), data )
186+ err = new .ExecTemplate (goClientWrapperEventsTemplate , filepath .Join (gameDir , "events.go" ), data )
195187 if err != nil {
196188 return err
197189 }
198190
199191 return nil
200192}
193+
194+ func baseURL (domain string , ssl bool ) string {
195+ if ssl {
196+ return "https://" + domain
197+ } else {
198+ return "http://" + domain
199+ }
200+ }
201+
202+ func isSSL (domain string ) bool {
203+ res , err := http .Get ("https://" + domain )
204+ if err == nil {
205+ res .Body .Close ()
206+ return true
207+ }
208+ return false
209+ }
0 commit comments