From a374751eb84c038f22b300bb0c6e5c4586cd0909 Mon Sep 17 00:00:00 2001
From: Unknwon <u@gogs.io>
Date: Tue, 3 Nov 2015 12:16:43 -0500
Subject: [PATCH] add Makefile

---
 .gitignore                 |  1 +
 Makefile                   | 30 ++++++++++++++++++++++++++++++
 cmd/web.go                 | 10 +++++-----
 modules/setting/setting.go |  9 +++++++++
 4 files changed, 45 insertions(+), 5 deletions(-)
 create mode 100644 Makefile

diff --git a/.gitignore b/.gitignore
index d696aff5f4..774a100be8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@ docker/docker/init_gogs.sh
 gogs.sublime-project
 gogs.sublime-workspace
 .tags*
+release
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..971727d704
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,30 @@
+LDFLAGS += -X "github.com/gogits/gogs/modules/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
+LDFLAGS += -X "github.com/gogits/gogs/modules/setting.BuildGitHash=$(shell git rev-parse HEAD)"
+
+TAGS = ""
+
+RELEASE_ROOT = "release"
+RELEASE_GOGS = "release/gogs"
+NOW = $(shell date -u '+%Y%m%d%I%M%S')
+
+.PHONY: build pack release bindata clean 
+
+build:
+	go install -ldflags '$(LDFLAGS)' -tags '$(TAGS)'
+	go build -ldflags '$(LDFLAGS)' -tags '$(TAGS)'
+
+pack:
+	find . -name ".DS_Store" -print0 | xargs -0 rm
+	rm -rf $(RELEASE_GOGS)
+	mkdir -p $(RELEASE_GOGS)
+	cp -r gogs LICENSE README.md README_ZH.md templates public scripts $(RELEASE_GOGS)
+	rm -rf $(RELEASE_GOGS)/public/config.codekit $(RELEASE_GOGS)/public/less
+	cd $(RELEASE_ROOT) && zip -r gogs.$(NOW).zip "gogs"
+
+release: build pack
+
+bindata: 
+	go-bindata -o=modules/bindata/bindata.go -ignore="\\.DS_Store|README.md" -pkg=bindata conf/...
+
+clean:
+	go clean -i ./...
\ No newline at end of file
diff --git a/cmd/web.go b/cmd/web.go
index 7e18b938c2..e52138c72f 100644
--- a/cmd/web.go
+++ b/cmd/web.go
@@ -82,11 +82,11 @@ func checkVersion() {
 	checkers := []VerChecker{
 		{"github.com/go-xorm/xorm", func() string { return xorm.Version }, "0.4.3.0806"},
 		{"github.com/Unknwon/macaron", macaron.Version, "0.5.4"},
-		{"github.com/macaron-contrib/binding", binding.Version, "0.1.0"},
-		{"github.com/macaron-contrib/cache", cache.Version, "0.1.2"},
-		{"github.com/macaron-contrib/csrf", csrf.Version, "0.0.3"},
-		{"github.com/macaron-contrib/i18n", i18n.Version, "0.0.7"},
-		{"github.com/macaron-contrib/session", session.Version, "0.1.6"},
+		{"github.com/go-macaron/binding", binding.Version, "0.1.0"},
+		{"github.com/go-macaron/cache", cache.Version, "0.1.2"},
+		{"github.com/go-macaron/csrf", csrf.Version, "0.0.3"},
+		{"github.com/go-macaron/i18n", i18n.Version, "0.0.7"},
+		{"github.com/go-macaron/session", session.Version, "0.1.6"},
 		{"gopkg.in/ini.v1", ini.Version, "1.3.4"},
 	}
 	for _, c := range checkers {
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index a3527b6b89..65c5d0fb8c 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -42,6 +42,10 @@ const (
 )
 
 var (
+	// Build information.
+	BuildTime    string
+	BuildGitHash string
+
 	// App settings.
 	AppVer      string
 	AppName     string
@@ -471,6 +475,11 @@ var logLevels = map[string]string{
 func newLogService() {
 	log.Info("%s %s", AppName, AppVer)
 
+	if len(BuildTime) > 0 {
+		log.Info("Build Time: %s", BuildTime)
+		log.Info("Build Git Hash: %s", BuildGitHash)
+	}
+
 	// Get and check log mode.
 	LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",")
 	LogConfigs = make([]string, len(LogModes))