Browse Source

Merge pull request #760 from Morganamilo/fixprotocols

 Use correct source protocol for VCS checks
Anna 6 years ago
parent
commit
5fe9160b1b
2 changed files with 9 additions and 6 deletions
  1. 8 5
      vcs.go
  2. 1 1
      vcs_test.go

+ 8 - 5
vcs.go

@@ -62,7 +62,7 @@ func parseSource(source string) (url string, branch string, protocols []string)
 	if len(split) != 2 {
 		return "", "", nil
 	}
-	protocols = strings.Split(split[0], "+")
+	protocols = strings.SplitN(split[0], "+", 2)
 
 	git := false
 	for _, protocol := range protocols {
@@ -72,6 +72,8 @@ func parseSource(source string) (url string, branch string, protocols []string)
 		}
 	}
 
+	protocols = protocols[len(protocols)-1:]
+
 	if !git {
 		return "", "", nil
 	}
@@ -142,7 +144,8 @@ func updateVCSData(pkgName string, sources []gosrc.ArchString, mux *sync.Mutex,
 }
 
 func getCommit(url string, branch string, protocols []string) string {
-	for _, protocol := range protocols {
+	if len(protocols) > 0 {
+		protocol := protocols[len(protocols)-1]
 		var outbuf bytes.Buffer
 
 		cmd := passToGit("", "ls-remote", protocol+"://"+url, branch)
@@ -151,7 +154,7 @@ func getCommit(url string, branch string, protocols []string) string {
 
 		err := cmd.Start()
 		if err != nil {
-			continue
+			return ""
 		}
 
 		//for some reason
@@ -165,14 +168,14 @@ func getCommit(url string, branch string, protocols []string) string {
 		err = cmd.Wait()
 		timer.Stop()
 		if err != nil {
-			continue
+			return ""
 		}
 
 		stdout := outbuf.String()
 		split := strings.Fields(stdout)
 
 		if len(split) < 2 {
-			continue
+			return ""
 		}
 
 		commit := split[0]

+ 1 - 1
vcs_test.go

@@ -44,7 +44,7 @@ func TestParsing(t *testing.T) {
 	}
 
 	sources := []source{
-		{"github.com/neovim/neovim.git", "HEAD", []string{"git", "https"}},
+		{"github.com/neovim/neovim.git", "HEAD", []string{"https"}},
 		{"github.com/jguer/yay.git", "master", []string{"git"}},
 		{"github.com/davidgiven/ack", "HEAD", []string{"git"}},
 		{"", "", nil},