Browse Source

Use toolbox

Unknwon 10 years ago
parent
commit
a8e05fdf1b
7 changed files with 33 additions and 30 deletions
  1. 1 0
      .gitignore
  2. 14 5
      cmd/web.go
  3. 1 1
      gogs.go
  4. 4 0
      models/models.go
  5. 0 18
      routers/dev/debug.go
  6. 12 5
      routers/user/home.go
  7. 1 1
      templates/.VERSION

+ 1 - 0
.gitignore

@@ -33,6 +33,7 @@ _testmain.go
 *.exe
 *.exe~
 /gogs
+profile/
 __pycache__
 *.pem
 output*

+ 14 - 5
cmd/web.go

@@ -19,7 +19,9 @@ import (
 	"github.com/macaron-contrib/csrf"
 	"github.com/macaron-contrib/i18n"
 	"github.com/macaron-contrib/session"
+	"github.com/macaron-contrib/toolbox"
 
+	"github.com/gogits/gogs/models"
 	"github.com/gogits/gogs/modules/auth"
 	"github.com/gogits/gogs/modules/auth/apiv1"
 	"github.com/gogits/gogs/modules/avatar"
@@ -62,20 +64,20 @@ func newMacaron() *macaron.Macaron {
 	m := macaron.New()
 	m.Use(macaron.Logger())
 	m.Use(macaron.Recovery())
-	if setting.EnableGzip {
-		m.Use(macaron.Gzip())
-	}
 	m.Use(macaron.Static("public",
 		macaron.StaticOptions{
 			SkipLogging: !setting.DisableRouterLog,
 		},
 	))
+	if setting.EnableGzip {
+		m.Use(macaron.Gzip())
+	}
 	m.Use(macaron.Renderer(macaron.RenderOptions{
 		Directory:  path.Join(setting.StaticRootPath, "templates"),
 		Funcs:      []template.FuncMap{base.TemplateFuncs},
 		IndentJSON: macaron.Env != macaron.PROD,
 	}))
-	m.Use(i18n.I18n(i18n.LocaleOptions{
+	m.Use(i18n.I18n(i18n.Options{
 		Langs:    setting.Langs,
 		Names:    setting.Names,
 		Redirect: true,
@@ -95,6 +97,14 @@ func newMacaron() *macaron.Macaron {
 		SetCookie: true,
 	}))
 	m.Use(middleware.Contexter())
+	m.Use(toolbox.Toolboxer(m, toolbox.Options{
+		HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
+			&toolbox.HealthCheckFuncDesc{
+				Desc: "Database connection",
+				Func: models.Ping,
+			},
+		},
+	}))
 	return m
 }
 
@@ -208,7 +218,6 @@ func runWeb(*cli.Context) {
 
 	if macaron.Env == macaron.DEV {
 		m.Get("/template/*", dev.TemplatePreview)
-		dev.RegisterDebugRoutes(m)
 	}
 
 	reqTrueOwner := middleware.RequireTrueOwner()

+ 1 - 1
gogs.go

@@ -17,7 +17,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.4.7.0805 Alpha"
+const APP_VER = "0.4.7.0806 Alpha"
 
 func init() {
 	runtime.GOMAXPROCS(runtime.NumCPU())

+ 4 - 0
models/models.go

@@ -165,6 +165,10 @@ func GetStatistic() (stats Statistic) {
 	return
 }
 
+func Ping() error {
+	return x.Ping()
+}
+
 // DumpDatabase dumps all data from database to file system.
 func DumpDatabase(filePath string) error {
 	return x.DumpAllToFile(filePath)

+ 0 - 18
routers/dev/debug.go

@@ -1,18 +0,0 @@
-// Copyright 2014 The Gogs Authors. All rights reserved.
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file.
-
-package dev
-
-import (
-	"net/http/pprof"
-
-	"github.com/Unknwon/macaron"
-)
-
-func RegisterDebugRoutes(r *macaron.Macaron) {
-	r.Any("/debug/pprof/cmdline", pprof.Cmdline)
-	r.Any("/debug/pprof/profile", pprof.Profile)
-	r.Any("/debug/pprof/symbol", pprof.Symbol)
-	r.Any("/debug/pprof/*", pprof.Index)
-}

+ 12 - 5
routers/user/home.go

@@ -119,12 +119,19 @@ func Profile(ctx *middleware.Context) {
 	ctx.Data["Title"] = "Profile"
 	ctx.Data["PageIsUserProfile"] = true
 
-	u, err := models.GetUserByName(ctx.Params(":username"))
+	uname := ctx.Params(":username")
+	// Special handle for FireFox requests favicon.ico.
+	if uname == "favicon.ico" {
+		ctx.Redirect("/img/favicon.png")
+		return
+	}
+
+	u, err := models.GetUserByName(uname)
 	if err != nil {
 		if err == models.ErrUserNotExist {
-			ctx.Handle(404, "user.Profile(GetUserByName)", err)
+			ctx.Handle(404, "GetUserByName", err)
 		} else {
-			ctx.Handle(500, "user.Profile(GetUserByName)", err)
+			ctx.Handle(500, "GetUserByName", err)
 		}
 		return
 	}
@@ -146,13 +153,13 @@ func Profile(ctx *middleware.Context) {
 	case "activity":
 		ctx.Data["Feeds"], err = models.GetFeeds(u.Id, 0, true)
 		if err != nil {
-			ctx.Handle(500, "user.Profile(GetFeeds)", err)
+			ctx.Handle(500, "GetFeeds", err)
 			return
 		}
 	default:
 		ctx.Data["Repos"], err = models.GetRepositories(u.Id, ctx.IsSigned && ctx.User.Id == u.Id)
 		if err != nil {
-			ctx.Handle(500, "user.Profile(GetRepositories)", err)
+			ctx.Handle(500, "GetRepositories", err)
 			return
 		}
 	}

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.4.7.0805 Alpha
+0.4.7.0806 Alpha