Use toolbox

This commit is contained in:
Unknwon 2014-08-06 17:21:24 -04:00
parent 6fc2107529
commit a8e05fdf1b
7 changed files with 33 additions and 30 deletions

1
.gitignore vendored
View file

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

View file

@ -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()

View file

@ -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())

View file

@ -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)

View file

@ -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)
}

View file

@ -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
}
}

View file

@ -1 +1 @@
0.4.7.0805 Alpha
0.4.7.0806 Alpha