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 }