forked from unknwon/gowalker
/
gowalker.go
69 lines (57 loc) · 1.94 KB
/
gowalker.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright 2013 Unknown
//
// Licensed under the Apache License, Version 2.0 (the "License"): you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
// Go Walker is a web server that generates Go projects API documentation with source code on the fly.
package main
import (
"os"
"runtime"
"github.com/Unknwon/gowalker/doc"
"github.com/Unknwon/gowalker/routers"
"github.com/astaxie/beego"
)
const (
VERSION = "0.6.1.0701" // Application version.
)
func init() {
// Try to have highest performance.
runtime.GOMAXPROCS(runtime.NumCPU())
// Set application log level.
if beego.AppConfig.String("runmode") == "pro" {
beego.SetLevel(beego.LevelInfo)
}
beego.Info("Go Walker", VERSION)
// ----- Initialize log file -----
os.Mkdir("./log", os.ModePerm)
filew := beego.NewFileWriter("log/log.log", true)
err := filew.StartLogger()
if err != nil {
beego.Critical("NewFileWriter ->", err)
}
doc.SetGithubCredentials(beego.AppConfig.String("client_id"), beego.AppConfig.String("client_secret"))
}
func main() {
beego.AppName = "Go Walker"
beego.Info("Go Walker", VERSION)
// Register routers.
beego.Router("/", &routers.HomeRouter{})
beego.Router("/search", &routers.SearchRouter{})
beego.Router("/index", &routers.IndexRouter{})
beego.Router("/labels", &routers.LabelsRouter{})
beego.Router("/examples", &routers.ExamplesRouter{})
beego.Router("/refresh", &routers.RefreshRouter{})
beego.Router("/about", &routers.AboutRouter{})
// For all unknown pages.
beego.Router("/:all", &routers.HomeRouter{})
beego.Run()
}