@@ -20,9 +20,14 @@ import (
20
20
const (
21
21
goBrewDir string = ".gobrew"
22
22
DefaultRegistryPath string = "https://go.dev/dl/"
23
- DownloadUrl string = "https://github.com/kevincobain2000/gobrew/releases/latest/download/"
24
- TagsApi = "https://raw.githubusercontent.com/kevincobain2000/gobrew/json/golang-tags.json"
25
- VersionsUrl string = "https://api.github.com/repos/kevincobain2000/gobrew/releases/latest"
23
+ DownloadURL string = "https://github.com/kevincobain2000/gobrew/releases/latest/download/"
24
+ TagsAPI = "https://raw.githubusercontent.com/kevincobain2000/gobrew/json/golang-tags.json"
25
+ VersionsURL string = "https://api.github.com/repos/kevincobain2000/gobrew/releases/latest"
26
+ )
27
+
28
+ const (
29
+ NoneVersion = "None"
30
+ ProgramName = "gobrew"
26
31
)
27
32
28
33
// check GoBrew implement is Command interface
@@ -31,7 +36,7 @@ var _ Command = (*GoBrew)(nil)
31
36
// Command ...
32
37
type Command interface {
33
38
ListVersions ()
34
- ListRemoteVersions (print bool ) map [string ][]string
39
+ ListRemoteVersions (bool ) map [string ][]string
35
40
CurrentVersion () string
36
41
Uninstall (version string )
37
42
Install (version string ) string
@@ -55,10 +60,10 @@ type GoBrew struct {
55
60
56
61
type Config struct {
57
62
RootDir string
58
- RegistryPathUrl string
59
- GobrewDownloadUrl string
63
+ RegistryPathURL string
64
+ GobrewDownloadURL string
60
65
GobrewTags string
61
- GobrewVersionsUrl string
66
+ GobrewVersionsURL string
62
67
}
63
68
64
69
// NewGoBrew instance
@@ -85,19 +90,19 @@ func (gb *GoBrew) Interactive(ask bool) {
85
90
latestVersion := gb .getLatestVersion ()
86
91
latestMajorVersion := extractMajorVersion (latestVersion )
87
92
88
- modVersion := "None"
93
+ modVersion := NoneVersion
89
94
if gb .hasModFile () {
90
95
modVersion = gb .getModVersion ()
91
96
modVersion = extractMajorVersion (modVersion )
92
97
}
93
98
94
99
fmt .Println ()
95
100
96
- if currentVersion == "None" {
101
+ if currentVersion == NoneVersion {
97
102
color .Warnln ("GO Installed Version" , "......." , currentVersion )
98
103
} else {
99
104
var labels []string
100
- if modVersion != "None" && currentMajorVersion != modVersion {
105
+ if modVersion != NoneVersion && currentMajorVersion != modVersion {
101
106
labels = append (labels , "not same as go.mod" )
102
107
}
103
108
if currentVersion != latestVersion {
@@ -111,7 +116,7 @@ func (gb *GoBrew) Interactive(ask bool) {
111
116
color .Successln ("GO Installed Version" , "......." , currentVersion + label )
112
117
}
113
118
114
- if modVersion != "None" && latestMajorVersion != modVersion {
119
+ if modVersion != NoneVersion && latestMajorVersion != modVersion {
115
120
label := " " + color .FgYellow .Render ("(not latest)" )
116
121
color .Successln ("GO go.mod Version" , " ......." , modVersion + label )
117
122
} else {
@@ -121,7 +126,7 @@ func (gb *GoBrew) Interactive(ask bool) {
121
126
color .Successln ("GO Latest Version" , " ......." , latestVersion )
122
127
fmt .Println ()
123
128
124
- if currentVersion == "None" {
129
+ if currentVersion == NoneVersion {
125
130
color .Warnln ("GO is not installed." )
126
131
c := true
127
132
if ask {
@@ -133,7 +138,7 @@ func (gb *GoBrew) Interactive(ask bool) {
133
138
return
134
139
}
135
140
136
- if modVersion != "None" && currentMajorVersion != modVersion {
141
+ if modVersion != NoneVersion && currentMajorVersion != modVersion {
137
142
color .Warnf ("GO Installed Version (%s) and go.mod Version (%s) are different.\n " , currentMajorVersion , modVersion )
138
143
c := true
139
144
if ask {
@@ -268,12 +273,12 @@ func (gb *GoBrew) ListRemoteVersions(print bool) map[string][]string {
268
273
func (gb * GoBrew ) CurrentVersion () string {
269
274
fp , err := evalSymlinks (gb .currentBinDir )
270
275
if err != nil {
271
- return "None"
276
+ return NoneVersion
272
277
}
273
278
version := strings .TrimSuffix (fp , filepath .Join ("go" , "bin" ))
274
279
version = filepath .Base (version )
275
280
if version == "." {
276
- return "None"
281
+ return NoneVersion
277
282
}
278
283
return version
279
284
}
@@ -294,7 +299,7 @@ func (gb *GoBrew) Uninstall(version string) {
294
299
295
300
// Install the given version of go
296
301
func (gb * GoBrew ) Install (version string ) string {
297
- if version == "" || version == "None" {
302
+ if version == "" || version == NoneVersion {
298
303
color .Errorln ("[Error] No version provided" )
299
304
os .Exit (1 )
300
305
}
@@ -337,11 +342,11 @@ func (gb *GoBrew) Upgrade(currentVersion string) {
337
342
return
338
343
}
339
344
340
- mkdirTemp , _ := os .MkdirTemp ("" , "gobrew" )
341
- tmpFile := filepath .Join (mkdirTemp , "gobrew" + fileExt )
342
- downloadUrl , _ := url .JoinPath (gb .GobrewDownloadUrl , "gobrew-" + gb .getArch ()+ fileExt )
345
+ mkdirTemp , _ := os .MkdirTemp ("" , ProgramName )
346
+ tmpFile := filepath .Join (mkdirTemp , ProgramName + fileExt )
347
+ downloadURL , _ := url .JoinPath (gb .GobrewDownloadURL , "gobrew-" + gb .getArch ()+ fileExt )
343
348
utils .CheckError (
344
- utils .DownloadWithProgress (downloadUrl , "gobrew" + fileExt , mkdirTemp ),
349
+ utils .DownloadWithProgress (downloadURL , ProgramName + fileExt , mkdirTemp ),
345
350
"[Error] Download GoBrew failed" )
346
351
347
352
source , err := os .Open (tmpFile )
@@ -351,7 +356,7 @@ func (gb *GoBrew) Upgrade(currentVersion string) {
351
356
utils .CheckError (os .Remove (source .Name ()), "==> [Error] Cannot remove tmp file:" )
352
357
}(source )
353
358
354
- goBrewFile := filepath .Join (gb .installDir , "bin" , "gobrew" + fileExt )
359
+ goBrewFile := filepath .Join (gb .installDir , "bin" , ProgramName + fileExt )
355
360
removeFile (goBrewFile )
356
361
destination , err := os .Create (goBrewFile )
357
362
utils .CheckError (err , "==> [Error] Cannot open file" )
0 commit comments