1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-11-21 08:31:27 -05:00

Fix for #828: Embed build tags (#1051)

* Fix for #828
Add build tags to ldflags and print in version output

Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com>

* Reworked formatBuiltWith function

Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com>

* Add tags to version information in admin panel

Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com>

* Added new variable for use on admin page.

Signed-off-by: Jonas Östanbäck <jonas.ostanback@gmail.com>

* Fixed incorrect indentation
This commit is contained in:
Jonas 2017-02-28 01:40:02 +01:00 committed by Lunny Xiao
parent 8947b711aa
commit a201977590
5 changed files with 21 additions and 4 deletions

View file

@ -11,7 +11,7 @@ BINDATA := modules/{options,public,templates}/bindata.go
STYLESHEETS := $(wildcard public/less/index.less public/less/_*.less) STYLESHEETS := $(wildcard public/less/index.less public/less/_*.less)
JAVASCRIPTS := JAVASCRIPTS :=
LDFLAGS := -X "main.Version=$(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//')" LDFLAGS := -X "main.Version=$(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//')" -X "main.Tags=$(TAGS)"
TARGETS ?= linux/*,darwin/*,windows/* TARGETS ?= linux/*,darwin/*,windows/*
PACKAGES ?= $(shell go list ./... | grep -v /vendor/) PACKAGES ?= $(shell go list ./... | grep -v /vendor/)

15
main.go
View file

@ -8,6 +8,7 @@ package main // import "code.gitea.io/gitea"
import ( import (
"os" "os"
"strings"
"code.gitea.io/gitea/cmd" "code.gitea.io/gitea/cmd"
"code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/log"
@ -18,15 +19,19 @@ import (
// Version holds the current Gitea version // Version holds the current Gitea version
var Version = "1.1.0+dev" var Version = "1.1.0+dev"
// Tags holds the build tags used
var Tags = ""
func init() { func init() {
setting.AppVer = Version setting.AppVer = Version
setting.AppBuiltWith = formatBuiltWith(Tags)
} }
func main() { func main() {
app := cli.NewApp() app := cli.NewApp()
app.Name = "Gitea" app.Name = "Gitea"
app.Usage = "A painless self-hosted Git service" app.Usage = "A painless self-hosted Git service"
app.Version = Version app.Version = Version + formatBuiltWith(Tags)
app.Commands = []cli.Command{ app.Commands = []cli.Command{
cmd.CmdWeb, cmd.CmdWeb,
cmd.CmdServ, cmd.CmdServ,
@ -41,3 +46,11 @@ func main() {
log.Fatal(4, "Failed to run app with %s: %v", os.Args, err) log.Fatal(4, "Failed to run app with %s: %v", os.Args, err)
} }
} }
func formatBuiltWith(Tags string) string {
if len(Tags) == 0 {
return ""
}
return " built with: " + strings.Replace(Tags, " ", ", ", -1)
}

View file

@ -59,6 +59,7 @@ const (
var ( var (
// AppVer settings // AppVer settings
AppVer string AppVer string
AppBuiltWith string
AppName string AppName string
AppURL string AppURL string
AppSubURL string AppSubURL string
@ -939,7 +940,7 @@ var logLevels = map[string]string{
} }
func newLogService() { func newLogService() {
log.Info("Gitea v%s", AppVer) log.Info("Gitea v%s%s", AppVer, AppBuiltWith)
LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",") LogModes = strings.Split(Cfg.Section("log").Key("MODE").MustString("console"), ",")
LogConfigs = make([]string, len(LogModes)) LogConfigs = make([]string, len(LogModes))

View file

@ -48,6 +48,9 @@ func NewFuncMap() []template.FuncMap {
"AppVer": func() string { "AppVer": func() string {
return setting.AppVer return setting.AppVer
}, },
"AppBuiltWith": func() string {
return setting.AppBuiltWith
},
"AppDomain": func() string { "AppDomain": func() string {
return setting.Domain return setting.Domain
}, },

View file

@ -13,7 +13,7 @@
<dt>{{.i18n.Tr "admin.config.app_name"}}</dt> <dt>{{.i18n.Tr "admin.config.app_name"}}</dt>
<dd>{{AppName}}</dd> <dd>{{AppName}}</dd>
<dt>{{.i18n.Tr "admin.config.app_ver"}}</dt> <dt>{{.i18n.Tr "admin.config.app_ver"}}</dt>
<dd>{{AppVer}}</dd> <dd>{{AppVer}}{{AppBuiltWith}}</dd>
<dt>{{.i18n.Tr "admin.config.app_url"}}</dt> <dt>{{.i18n.Tr "admin.config.app_url"}}</dt>
<dd>{{.AppUrl}}</dd> <dd>{{.AppUrl}}</dd>
<dt>{{.i18n.Tr "admin.config.domain"}}</dt> <dt>{{.i18n.Tr "admin.config.domain"}}</dt>