@@ -73,6 +73,13 @@ const (
7373 defaultInactive int = 72
7474)
7575
76+ // Build-time metadata (overridden via -ldflags "-X main.buildVersion=... -X main.buildCommit=... -X main.buildDate=...")
77+ var (
78+ buildVersion = serviceVersion
79+ buildCommit = "unknown"
80+ buildDate = "unknown"
81+ )
82+
7683// Global general variables
7784var (
7885 err error
@@ -649,9 +656,19 @@ func main() {
649656 app = cli .NewApp ()
650657 app .Name = serviceName
651658 app .Usage = appDescription
652- app .Version = serviceVersion
659+ app .Version = buildVersion
653660 app .Description = appDescription
654661 app .Flags = flags
662+ // Customize version output (supports `--version` and `version` command)
663+ cli .VersionPrinter = func (c * cli.Context ) {
664+ fmt .Printf ("%s version=%s commit=%s date=%s\n " , serviceName , buildVersion , buildCommit , buildDate )
665+ }
666+ // Add -v alias to the global --version flag
667+ cli .VersionFlag = & cli.BoolFlag {
668+ Name : "version" ,
669+ Aliases : []string {"v" },
670+ Usage : "Print version information" ,
671+ }
655672 // Define this command for help to exit when help flag is passed
656673 app .Commands = []* cli.Command {
657674 {
@@ -662,13 +679,19 @@ func main() {
662679 },
663680 },
664681 }
665- app .Action = cliAction
682+ // Start service only for default action; version/help won't trigger this
683+ app .Action = func (c * cli.Context ) error {
684+ if err := cliAction (c ); err != nil {
685+ return err
686+ }
687+ // Initialize service logger
688+ initializeLoggers (flagParams .ConfigValues )
689+ // Service starts!
690+ osctrlAdminService ()
691+ return nil
692+ }
666693 if err := app .Run (os .Args ); err != nil {
667694 fmt .Printf ("app.Run error: %s" , err .Error ())
668695 os .Exit (1 )
669696 }
670- // Initialize service logger
671- initializeLoggers (flagParams .ConfigValues )
672- // Service starts!
673- osctrlAdminService ()
674697}
0 commit comments