diff --git a/.gitignore b/.gitignore index c24f364baa..e8b5ee1f93 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ _testmain.go *.exe *.exe~ /gogs +profile/ __pycache__ *.pem output* diff --git a/cmd/web.go b/cmd/web.go index 995aeb04a9..8d39ce64c8 100644 --- a/cmd/web.go +++ b/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() diff --git a/gogs.go b/gogs.go index c395276be7..b08dbd5a5f 100644 --- a/gogs.go +++ b/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()) diff --git a/models/models.go b/models/models.go index 31509ed349..af9529f40a 100644 --- a/models/models.go +++ b/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) diff --git a/routers/dev/debug.go b/routers/dev/debug.go deleted file mode 100644 index 7d737d885e..0000000000 --- a/routers/dev/debug.go +++ /dev/null @@ -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) -} diff --git a/routers/user/home.go b/routers/user/home.go index 706c16d91f..177fa38be3 100644 --- a/routers/user/home.go +++ b/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 } } diff --git a/templates/.VERSION b/templates/.VERSION index 833e3a16dd..04e73b67f7 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.4.7.0805 Alpha \ No newline at end of file +0.4.7.0806 Alpha \ No newline at end of file