@@ -27,16 +27,17 @@ func GetTFList(mirrorURL string, preRelease bool) ([]string, error) {
2727 var semver string
2828 if preRelease == true {
2929 // Getting versions from body; should return match /X.X.X-@/ where X is a number,@ is a word character between a-z or A-Z
30- semver = `\/(\d+\.\d+\.\d+)(-[a-zA-z]+\d*)?\/ `
30+ semver = `\/(\d+\.\d+\.\d+)(-[a-zA-z]+\d*)?" `
3131 } else if preRelease == false {
3232 // Getting versions from body; should return match /X.X.X/ where X is a number
33- semver = `\/(\d+\.\d+\.\d+)\/`
33+ // without the ending '"' pre-release folders would be tried and break.
34+ semver = `\/(\d+\.\d+\.\d+)\/?"`
3435 }
3536 r , _ := regexp .Compile (semver )
3637 for i := range result {
3738 if r .MatchString (result [i ]) {
3839 str := r .FindString (result [i ])
39- trimstr := strings .Trim (str , "/" ) //remove "/" from /X.X.X/
40+ trimstr := strings .Trim (str , "/\" " ) //remove '/' or '"' from /X.X.X/" or /X.X.X"
4041 tfVersionList .tflist = append (tfVersionList .tflist , trimstr )
4142 }
4243 }
@@ -57,12 +58,12 @@ func GetTFLatest(mirrorURL string) (string, error) {
5758 return "" , error
5859 }
5960 // Getting versions from body; should return match /X.X.X/ where X is a number
60- semver := `\/(\d+\.\d+\.\d+)\/`
61+ semver := `\/(\d+\.\d+\.\d+)\/?" `
6162 r , _ := regexp .Compile (semver )
6263 for i := range result {
6364 if r .MatchString (result [i ]) {
6465 str := r .FindString (result [i ])
65- trimstr := strings .Trim (str , "/" ) //remove "/" from /X.X.X/
66+ trimstr := strings .Trim (str , "/\" " ) //remove '/' or '"' from /X.X.X/" or /X.X.X"
6667 return trimstr , nil
6768 }
6869 }
@@ -80,15 +81,15 @@ func GetTFLatestImplicit(mirrorURL string, preRelease bool, version string) (str
8081 return "" , error
8182 }
8283 // Getting versions from body; should return match /X.X.X-@/ where X is a number,@ is a word character between a-z or A-Z
83- semver := fmt .Sprintf (`\/(%s{1}\.\d+\-[a-zA-z]+\d*)\/` , version )
84+ semver := fmt .Sprintf (`\/(%s{1}\.\d+\-[a-zA-z]+\d*)\/?" ` , version )
8485 r , err := regexp .Compile (semver )
8586 if err != nil {
8687 return "" , err
8788 }
8889 for i := range versions {
8990 if r .MatchString (versions [i ]) {
9091 str := r .FindString (versions [i ])
91- trimstr := strings .Trim (str , "/" ) //remove "/" from /X.X.X/
92+ trimstr := strings .Trim (str , "/\" " ) //remove '/' or '"' from /X.X.X/" or /X.X.X"
9293 return trimstr , nil
9394 }
9495 }
0 commit comments