cmd/zoekt-indexserver: configurable credentials path

This change makes credential paths configurable from the indexserver allowing us to index multiple instances of the same git hosting service.

Change-Id: I53770423d232f4d9da5335282f7fa77b6e1d7440
diff --git a/cmd/zoekt-indexserver/config.go b/cmd/zoekt-indexserver/config.go
index 9dccb48..0a73bef 100644
--- a/cmd/zoekt-indexserver/config.go
+++ b/cmd/zoekt-indexserver/config.go
@@ -38,6 +38,7 @@
 	GitilesURL             string
 	CGitURL                string
 	BitBucketServerURL     string
+	CredentialPath         string
 	ProjectType            string
 	Name                   string
 	Exclude                string
@@ -174,6 +175,9 @@
 			if c.Exclude != "" {
 				cmd.Args = append(cmd.Args, "-exclude", c.Exclude)
 			}
+			if c.CredentialPath != "" {
+				cmd.Args = append(cmd.Args, "-token", c.CredentialPath)
+			}
 		} else if c.GitilesURL != "" {
 			cmd = exec.Command("zoekt-mirror-gitiles",
 				"-dest", repoDir, "-name", c.Name)
@@ -204,6 +208,9 @@
 			if c.Exclude != "" {
 				cmd.Args = append(cmd.Args, "-exclude", c.Exclude)
 			}
+			if c.CredentialPath != "" {
+				cmd.Args = append(cmd.Args, "-credentials", c.CredentialPath)
+			}
 		} else if c.GitLabURL != "" {
 			cmd = exec.Command("zoekt-mirror-gitlab",
 				"-dest", repoDir, "-url", c.GitLabURL)
@@ -216,6 +223,9 @@
 			if c.OnlyPublic {
 				cmd.Args = append(cmd.Args, "-public")
 			}
+			if c.CredentialPath != "" {
+				cmd.Args = append(cmd.Args, "-token", c.CredentialPath)
+			}
 		}
 
 		stdout, _ := loggedRun(cmd)