github.com/ssube/gitlab-ci-multi-runner@v1.2.1-0.20160607142738-b8d1285632e6/common/version.go (about)

     1  package common
     2  
     3  import (
     4  	"fmt"
     5  	"runtime"
     6  	"time"
     7  
     8  	"github.com/codegangsta/cli"
     9  )
    10  
    11  var NAME = "gitlab-ci-multi-runner"
    12  var VERSION = "dev"
    13  var REVISION = "HEAD"
    14  var BUILT = "now"
    15  var BRANCH = "HEAD"
    16  
    17  func VersionPrinter(c *cli.Context) {
    18  	fmt.Print(ExtendedVersion())
    19  }
    20  
    21  func VersionLine() string {
    22  	return fmt.Sprintf("%s %s (%s)", NAME, VERSION, REVISION)
    23  }
    24  
    25  func VersionUserAgent() string {
    26  	return fmt.Sprintf("%s %s (%s; %s; %s/%s)", NAME, VERSION, BRANCH, runtime.Version(), runtime.GOOS, runtime.GOARCH)
    27  }
    28  
    29  func ExtendedVersion() string {
    30  	built := time.Now()
    31  	if BUILT != "now" {
    32  		built, _ = time.Parse(time.RFC3339, BUILT)
    33  	}
    34  
    35  	version := fmt.Sprintf("Version:      %s\n", VERSION)
    36  	version += fmt.Sprintf("Git revision: %s\n", REVISION)
    37  	version += fmt.Sprintf("Git branch:   %s\n", BRANCH)
    38  	version += fmt.Sprintf("GO version:   %s\n", runtime.Version())
    39  	version += fmt.Sprintf("Built:        %s\n", built.Format(time.RFC1123Z))
    40  	version += fmt.Sprintf("OS/Arch:      %s/%s\n", runtime.GOOS, runtime.GOARCH)
    41  
    42  	return version
    43  }