summaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go81
1 files changed, 81 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..b8cc566
--- /dev/null
+++ b/main.go
@@ -0,0 +1,81 @@
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Copyright 2016 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package main
+
+import (
+ "os"
+ "runtime"
+ "strings"
+ "time"
+
+ "code.gitea.io/gitea/cmd"
+ "code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/setting"
+
+ // register supported doc types
+ _ "code.gitea.io/gitea/modules/markup/asciicast"
+ _ "code.gitea.io/gitea/modules/markup/console"
+ _ "code.gitea.io/gitea/modules/markup/csv"
+ _ "code.gitea.io/gitea/modules/markup/markdown"
+ _ "code.gitea.io/gitea/modules/markup/orgmode"
+
+ "github.com/urfave/cli/v2"
+)
+
+// these flags will be set by the build flags
+var (
+ Version = "development" // program version for this build
+ Tags = "" // the Golang build tags
+ MakeVersion = "" // "make" program version if built with make
+
+ ReleaseVersion = ""
+)
+
+var ForgejoVersion = "1.0.0"
+
+func init() {
+ setting.AppVer = Version
+ setting.ForgejoVersion = ForgejoVersion
+ setting.AppBuiltWith = formatBuiltWith()
+ setting.AppStartTime = time.Now().UTC()
+}
+
+func forgejoEnv() {
+ for _, k := range []string{"CUSTOM", "WORK_DIR"} {
+ if v, ok := os.LookupEnv("FORGEJO_" + k); ok {
+ os.Setenv("GITEA_"+k, v)
+ }
+ }
+}
+
+func main() {
+ forgejoEnv()
+ cli.OsExiter = func(code int) {
+ log.GetManager().Close()
+ os.Exit(code)
+ }
+ app := cmd.NewMainApp(Version, formatReleaseVersion()+formatBuiltWith())
+ _ = cmd.RunMainApp(app, os.Args...) // all errors should have been handled by the RunMainApp
+ log.GetManager().Close()
+}
+
+func formatReleaseVersion() string {
+ if len(ReleaseVersion) > 0 {
+ return " (release name " + ReleaseVersion + ")"
+ }
+ return ""
+}
+
+func formatBuiltWith() string {
+ version := runtime.Version()
+ if len(MakeVersion) > 0 {
+ version = MakeVersion + ", " + runtime.Version()
+ }
+ if len(Tags) == 0 {
+ return " built with " + version
+ }
+
+ return " built with " + version + " : " + strings.ReplaceAll(Tags, " ", ", ")
+}