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

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"path"
     6  
     7  	"github.com/Sirupsen/logrus"
     8  	"github.com/codegangsta/cli"
     9  	"gitlab.com/gitlab-org/gitlab-ci-multi-runner/common"
    10  	"gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers"
    11  	"gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers/cli"
    12  	"gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers/formatter"
    13  
    14  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands"
    15  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/commands/helpers"
    16  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/executors/docker"
    17  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/executors/docker/machine"
    18  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/executors/parallels"
    19  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/executors/shell"
    20  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/executors/ssh"
    21  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/executors/virtualbox"
    22  	_ "gitlab.com/gitlab-org/gitlab-ci-multi-runner/shells"
    23  )
    24  
    25  var NAME = "gitlab-ci-multi-runner"
    26  var VERSION = "dev"
    27  var REVISION = "HEAD"
    28  var BUILT = "now"
    29  var BRANCH = "HEAD"
    30  
    31  func init() {
    32  	common.NAME = NAME
    33  	common.VERSION = VERSION
    34  	common.REVISION = REVISION
    35  	common.BUILT = BUILT
    36  	common.BRANCH = BRANCH
    37  }
    38  
    39  func main() {
    40  	defer func() {
    41  		if r := recover(); r != nil {
    42  			// log panics forces exit
    43  			if _, ok := r.(*logrus.Entry); ok {
    44  				os.Exit(1)
    45  			}
    46  			panic(r)
    47  		}
    48  	}()
    49  
    50  	formatter.SetRunnerFormatter()
    51  
    52  	// Start background reaping of orphaned child processes.
    53  	// It allows the gitlab-runner to act as `init` process
    54  	go helpers.Reap()
    55  
    56  	app := cli.NewApp()
    57  	app.Name = path.Base(os.Args[0])
    58  	app.Usage = "a GitLab Runner"
    59  	cli.VersionPrinter = common.VersionPrinter
    60  	app.Authors = []cli.Author{
    61  		cli.Author{
    62  			Name:  "Kamil TrzciƄski",
    63  			Email: "ayufan@ayufan.eu",
    64  		},
    65  	}
    66  	cli_helpers.LogRuntimePlatform(app)
    67  	cli_helpers.SetupLogLevelOptions(app)
    68  	cli_helpers.SetupCPUProfile(app)
    69  	cli_helpers.FixHOME(app)
    70  	app.Commands = common.GetCommands()
    71  	app.CommandNotFound = func(context *cli.Context, command string) {
    72  		logrus.Fatalln("Command", command, "not found.")
    73  	}
    74  
    75  	if err := app.Run(os.Args); err != nil {
    76  		logrus.Fatal(err)
    77  	}
    78  }