@@ -10,6 +10,7 @@ import (
10
10
"net/http/pprof"
11
11
"os"
12
12
"os/signal"
13
+ "runtime/debug"
13
14
"strconv"
14
15
"strings"
15
16
"syscall"
@@ -81,15 +82,26 @@ func main() {
81
82
flagConfig := flag .String ("config" , envString ("GIT_MIRROR_CONFIG" , "/etc/git-mirror/config.yaml" ), "Absolute path to the config file" )
82
83
flagWatchConfig := flag .Bool ("watch-config" , envBool ("GIT_MIRROR_WATCH_CONFIG" , true ), "watch config for changes and reload when changes encountered" )
83
84
flagHttpBind := flag .String ("http-bind-address" , envString ("GIT_MIRROR_HTTP_BIND" , ":9001" ), "The address the web server binds to" )
85
+ flagVersion := flag .Bool ("version" , false , "git-mirror version" )
84
86
85
87
flag .Usage = usage
86
88
flag .Parse ()
87
89
90
+ info , _ := debug .ReadBuildInfo ()
91
+
92
+ if * flagVersion || (flag .NArg () == 1 && flag .Arg (0 ) == "version" ) {
93
+ fmt .Printf ("version=%s go=%s\n " , info .Main .Version , info .GoVersion )
94
+ return
95
+ }
96
+
88
97
// set log level according to argument
89
98
if v , ok := levelStrings [strings .ToLower (* flagLogLevel )]; ok {
90
99
loggerLevel .Set (v )
91
100
}
92
101
102
+ logger .Info ("version" , "app" , info .Main .Version , "go" , info .GoVersion )
103
+ logger .Info ("config" , "path" , * flagConfig , "watch" , * flagWatchConfig )
104
+
93
105
mirror .EnableMetrics ("" , prometheus .NewRegistry ())
94
106
prometheus .MustRegister (configSuccess , configSuccessTime )
95
107
@@ -136,6 +148,7 @@ func main() {
136
148
go WatchConfig (ctx , * flagConfig , * flagWatchConfig , 10 * time .Second , onConfigChange )
137
149
138
150
go func () {
151
+ logger .Info ("starting web server" , "add" , * flagHttpBind )
139
152
if err := server .ListenAndServe (); err != nil && ! errors .Is (err , http .ErrServerClosed ) {
140
153
logger .Error ("HTTP server terminated" , "err" , err )
141
154
}
0 commit comments