@@ -22,7 +22,7 @@ var beta *string
22
22
var tag * string
23
23
24
24
var semverPrompt = & survey.Select {
25
- Message : "Choose a semver version:" ,
25
+ Message : "Choose a semver version (choose none for prerelease/beta increments) :" ,
26
26
Options : []string {"major" , "minor" , "patch" , "none" },
27
27
Default : "none" ,
28
28
}
@@ -32,8 +32,8 @@ var betaPrompt = &survey.Confirm{
32
32
}
33
33
34
34
var betaSuffixPrompt = & survey.Input {
35
- Message : "Enter the exiting beta suffix, will be also used for the any beta suffix? " ,
36
- Default : "beta " ,
35
+ Message : "Enter the exiting beta suffix (if any)? (eg: beta or dev or canary) " ,
36
+ Default : "" ,
37
37
}
38
38
39
39
// TagVersion - struct holding the broken down tag
@@ -47,20 +47,25 @@ type TagVersion struct {
47
47
// Install - add flags and other options
48
48
func Install () {
49
49
releaseCmd = flag .NewFlagSet ("release" , flag .ExitOnError )
50
- major = releaseCmd .Bool ("major" , false , "If release is a major one, will increment the x.0.0 " )
51
- minor = releaseCmd .Bool ("minor" , false , "If release is a minor one, will increment the 0.x.0 " )
52
- patch = releaseCmd .Bool ("patch" , false , "If release is a patch, will increment the 0.0.x " )
50
+ major = releaseCmd .Bool ("major" , false , "If release is a * major* one, will increment the x.0.0 " )
51
+ minor = releaseCmd .Bool ("minor" , false , "If release is a * minor* one, will increment the 0.x.0 " )
52
+ patch = releaseCmd .Bool ("patch" , false , "If release is a * patch* , will increment the 0.0.x " )
53
53
beta = releaseCmd .String ("beta" , "beta" , "If the release is a beta, to add/increment tag with `-beta.x` or mentioned string" )
54
54
tag = releaseCmd .String ("tag" , "" , "The Tag to be taken as base" )
55
55
}
56
56
57
57
// Run - execute the command
58
58
func Run (args []string ) {
59
59
60
- var tagToUse = * tag
61
-
62
60
isBeta := needsQuestionnaire (args )
63
61
err := releaseCmd .Parse (args )
62
+
63
+ var tagToUse = * tag
64
+
65
+ if * beta != "" {
66
+ isBeta = true
67
+ }
68
+
64
69
if err != nil {
65
70
log .Fatal (err )
66
71
}
@@ -135,6 +140,11 @@ func createRelease(tagString string, increaseMajor bool, increaseMinor bool, inc
135
140
if err != nil {
136
141
log .Fatal ("Error converting to number on version.patch" , version )
137
142
}
143
+
144
+ if version .beta == "" {
145
+ version .beta = "-1"
146
+ }
147
+
138
148
betaAsInt , err := strconv .ParseInt (version .beta , 10 , 32 )
139
149
if err != nil {
140
150
log .Fatal ("Error converting to number on version.beta" , version )
@@ -254,7 +264,10 @@ func breakTag(tagString string) (*TagVersion, bool) {
254
264
version .major = tagSplits [0 ]
255
265
version .minor = tagSplits [1 ]
256
266
version .patch = tagSplits [2 ]
257
- version .beta = tagSplits [3 ]
267
+
268
+ if len (tagSplits ) > 3 {
269
+ version .beta = tagSplits [3 ]
270
+ }
258
271
259
272
// Check if the major version has the letter `v` in the tag
260
273
if len (version .major ) > 1 && strings .Contains (version .major , "v" ) {
@@ -272,8 +285,15 @@ func breakTag(tagString string) (*TagVersion, bool) {
272
285
func getTagString () string {
273
286
currentRepository := clog .OpenRepository ("." )
274
287
var tagRef * plumbing.Reference
288
+ var err error
275
289
if * tag == "" {
276
- tagRef , _ , _ = clog .GetLatestTagFromRepository (currentRepository )
290
+ tagRef , _ , err = clog .GetLatestTagFromRepository (currentRepository )
291
+ if err != nil {
292
+ log .Fatalf ("coulnd't retrieve given tag from your repository: Error %v" , err )
293
+ }
294
+ }
295
+ if tagRef == nil {
296
+ log .Fatalf ("coulnd't retrieve given tag from your repository" )
277
297
}
278
298
onlyTag := tagRef .Name ().Short ()
279
299
return onlyTag
0 commit comments