@@ -12,6 +12,8 @@ import (
1212 "runtime"
1313 "strconv"
1414 "strings"
15+
16+ "github.com/code-game-project/codegame-cli/cli"
1517)
1618
1719var ErrTagNotFound = errors .New ("tag not found" )
@@ -62,7 +64,7 @@ func GetUsername() string {
6264 return strings .TrimSpace (user .Username )
6365 }
6466
65- fmt . Println ("Make sure to replace <your-name> with your actual name." )
67+ cli . Info ("Make sure to replace <your-name> with your actual name." )
6668 return "<your-name>"
6769}
6870
@@ -75,14 +77,14 @@ func OpenBrowser(url string) error {
7577 case "darwin" :
7678 return exec .Command ("open" , url ).Start ()
7779 default :
78- return fmt .Errorf ("unsupported platform" )
80+ return fmt .Errorf ("Unsupported platform. " )
7981 }
8082}
8183
8284func GithubTagFromVersion (owner , repo , version string ) (string , error ) {
8385 res , err := http .Get (fmt .Sprintf ("https://api.github.com/repos/%s/%s/tags" , owner , repo ))
84- if err != nil {
85- return "" , err
86+ if err != nil || res . StatusCode != http . StatusOK {
87+ return "" , cli . Error ( "Couldn't access git tags from 'github.com/%s/%s'." , owner , repo )
8688 }
8789 defer res .Body .Close ()
8890 type response []struct {
@@ -91,7 +93,7 @@ func GithubTagFromVersion(owner, repo, version string) (string, error) {
9193 var data response
9294 err = json .NewDecoder (res .Body ).Decode (& data )
9395 if err != nil {
94- return "" , err
96+ return "" , cli . Error ( "Couldn't decode git tag data." )
9597 }
9698
9799 for _ , tag := range data {
@@ -104,16 +106,16 @@ func GithubTagFromVersion(owner, repo, version string) (string, error) {
104106
105107func ClientVersionFromCGVersion (owner , repo , cgVersion string ) string {
106108 res , err := http .Get (fmt .Sprintf ("https://raw.githubusercontent.com/%s/%s/main/versions.json" , owner , repo ))
107- if err != nil {
108- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: Couldn't fetch versions.json. Using latest client library version.\n \x1b [0m " )
109+ if err != nil || res . StatusCode != http . StatusOK {
110+ cli . Warn ( " Couldn't fetch versions.json. Using latest client library version." )
109111 return "latest"
110112 }
111113 defer res .Body .Close ()
112114
113115 var versions map [string ]string
114116 err = json .NewDecoder (res .Body ).Decode (& versions )
115117 if err != nil {
116- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: Invalid versions.json. Using latest client library version.\n \x1b [0m " )
118+ cli . Warn ( " Invalid versions.json. Using latest client library version." )
117119 return "latest"
118120 }
119121
@@ -124,7 +126,7 @@ func ClientVersionFromCGVersion(owner, repo, cgVersion string) string {
124126
125127 parts := strings .Split (cgVersion , "." )
126128 if len (parts ) < 2 {
127- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: Invalid versions.json. Using latest client library version.\n \x1b [0m " )
129+ cli . Warn ( " Invalid versions.json. Using latest client library version." )
128130 return "latest"
129131 }
130132 major := parts [0 ]
@@ -134,28 +136,28 @@ func ClientVersionFromCGVersion(owner, repo, cgVersion string) string {
134136 for v := range versions {
135137 clientParts := strings .Split (v , "." )
136138 if len (clientParts ) < 2 {
137- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: Invalid versions.json. Using latest client library version.\n \x1b [0m " )
139+ cli . Warn ( " Invalid versions.json. Using latest client library version." )
138140 return "latest"
139141 }
140142 clientMajor := clientParts [0 ]
141143 if major == clientMajor {
142144 minor , err := strconv .Atoi (clientParts [1 ])
143145 if err != nil {
144- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: Invalid versions.json. Using latest client library version.\n \x1b [0m " )
146+ cli . Warn ( " Invalid versions.json. Using latest client library version." )
145147 return "latest"
146148 }
147149 compatibleMinorVersions = append (compatibleMinorVersions , minor )
148150 }
149151 }
150152 if len (compatibleMinorVersions ) == 0 {
151- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: No compatible client library version found. Using latest client library version.\n \x1b [0m " )
153+ cli . Warn ( " No compatible client library version found. Using latest client library version." )
152154 return "latest"
153155 }
154156
155157 minorStr := parts [1 ]
156158 minor , err := strconv .Atoi (minorStr )
157159 if err != nil {
158- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: Invalid versions.json. Using latest client library version.\n \x1b [0m " )
160+ cli . Warn ( " Invalid versions.json. Using latest client library version." )
159161 return "latest"
160162 }
161163
@@ -168,7 +170,7 @@ func ClientVersionFromCGVersion(owner, repo, cgVersion string) string {
168170 }
169171 if closestMinor >= 0 {
170172 v := fmt .Sprintf ("%s.%d" , major , minor )
171- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: No exact version match found. Using client library version %s.\n \x1b [0m " , v )
173+ cli . Warn ( " No exact version match found. Using client library version %s." , v )
172174 return v
173175 }
174176
@@ -181,10 +183,10 @@ func ClientVersionFromCGVersion(owner, repo, cgVersion string) string {
181183 }
182184 if closestMinor >= 0 {
183185 v := fmt .Sprintf ("%s.%d" , major , minor )
184- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: No exact version match found. Using client library version %s.\n \x1b [0m" , v )
186+ cli . Warn ( " No exact version match found. Using client library version %s." )
185187 return v
186188 }
187189
188- fmt . Fprintf ( os . Stderr , " \x1b [33mWARNING: No compatible client library version found. Using latest client library version.\n \x1b [0m " )
190+ cli . Warn ( " No compatible client library version found. Using latest client library version." )
189191 return "latest"
190192}
0 commit comments