Unknown 11 years ago
parent
commit
ea74be2f2e
5 changed files with 24 additions and 1 deletions
  1. 2 0
      modules/base/base.go
  2. 12 0
      modules/base/template.go
  3. 5 0
      routers/dashboard.go
  4. 4 0
      routers/repo/repo.go
  5. 1 1
      templates/base/head.tmpl

+ 2 - 0
modules/base/base.go

@@ -54,3 +54,5 @@ const (
 	BindingBooleanTypeError     string = "BooleanTypeError"
 	BindingFloatTypeError       string = "FloatTypeError"
 )
+
+var GoGetMetas = make(map[string]bool)

+ 12 - 0
modules/base/template.go

@@ -197,3 +197,15 @@ func DiffLineTypeToStr(diffType int) string {
 	}
 	return "same"
 }
+
+const (
+	TPL_GO_GET_META = `<meta name="go-import" content="%s git %s">`
+)
+
+func GetGoGetMetaList() []byte {
+	buf := bytes.NewBuffer([]byte(""))
+	for meta := range GoGetMetas {
+		buf.WriteString(fmt.Sprintf(TPL_GO_GET_META, Domain, meta))
+	}
+	return buf.Bytes()
+}

+ 5 - 0
routers/dashboard.go

@@ -11,6 +11,11 @@ import (
 )
 
 func Home(ctx *middleware.Context) {
+	if ctx.Query("go-get") == "1" {
+		ctx.Write(base.GetGoGetMetaList())
+		return
+	}
+
 	if ctx.IsSigned {
 		user.Dashboard(ctx)
 		return

+ 4 - 0
routers/repo/repo.go

@@ -107,6 +107,10 @@ func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
 }
 
 func Single(ctx *middleware.Context, params martini.Params) {
+	if ctx.Query("go-get") == "1" {
+		base.GoGetMetas[strings.TrimSuffix(ctx.Repo.CloneLink.HTTPS, ".git")] = true
+	}
+
 	branchName := ctx.Repo.BranchName
 	userName := ctx.Repo.Owner.Name
 	repoName := ctx.Repo.Repository.Name

+ 1 - 1
templates/base/head.tmpl

@@ -9,7 +9,7 @@
 		<meta name="description" content="Gogs(Go Git Service) is a GitHub-like clone in the Go Programming Language" />
 		<meta name="keywords" content="go, git">
 		<meta name="_csrf" content="{{.CsrfToken}}" />
-		<meta name="go-import" content="{{AppDomain}} git {{if .Repository.IsGoget}}{{.GoGetLink}}{{else}}{{AppDomain}}/{{end}}">
+		<meta name="go-import" content="{{AppDomain}} git {{if .Repository.IsGoget}}{{.GoGetLink}}{{end}}">
 
 		 <!-- Stylesheets -->
 		{{if IsProdMode}}