Skip to content

Commit ed7e986

Browse files
authored
Merge pull request #229 from warrensbox/master
Fixes Hashicorp link issue
2 parents 9a8164c + 31a5b91 commit ed7e986

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

lib/list_versions.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)