Incorrect parameter to gitlab-ci-multi-runner register exits badly
Summary
Registration started with incorrect parameter crashes the program
Steps to reproduce
gitlab-ci-multi-runner register --some-nonexistent-switch
Actual behavior
root@293a04473466:/# gitlab-ci-multi-runner register --lol
panic: reflect: call of reflect.Value.Type on zero Value [recovered]
panic: reflect: call of reflect.Value.Type on zero Value
goroutine 1 [running]:
panic(0x142c480, 0xc420378780)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
main.main.func1()
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/main.go:32 +0x7f
panic(0x142c480, 0xc420378780)
/usr/local/go/src/runtime/panic.go:458 +0x243
reflect.Value.Type(0x0, 0x0, 0x0, 0xc4204d71e8, 0x450d4c)
/usr/local/go/src/reflect/value.go:1670 +0x224
gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers.convertMarshal(0x0, 0x0, 0x0, 0x402891, 0x2f54ed0, 0x7f5457a4c9a8, 0xc4204d72d8, 0x40cc16)
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers/convert.go:47 +0x43
gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers.convertToString(0x0, 0x0, 0x0, 0x0, 0x0, 0x1517680, 0xc420377580, 0x445131, 0x62e6d1d9000002dc)
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers/convert.go:58 +0x5d
gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers.StructFieldValue.String(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers/struct_field.go:32 +0x7b
gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/gitlab.com/ayufan/golang-cli-helpers.(*StructFieldValue).String(0xc420377580, 0x1517680, 0xc420377580)
<autogenerated>:5 +0x7a
flag.isZeroValue(0xc42039ec40, 0x0, 0x0, 0x14c8d02)
/usr/local/go/src/flag/flag.go:393 +0x12d
flag.(*FlagSet).PrintDefaults.func1(0xc42039ec40)
/usr/local/go/src/flag/flag.go:467 +0x1d5
flag.(*FlagSet).VisitAll(0xc42039b3e0, 0xc4204d7588)
/usr/local/go/src/flag/flag.go:323 +0x67
flag.(*FlagSet).PrintDefaults(0xc42039b3e0)
/usr/local/go/src/flag/flag.go:476 +0x4f
flag.defaultUsage(0xc42039b3e0)
/usr/local/go/src/flag/flag.go:509 +0x96
flag.(*FlagSet).usage(0xc42039b3e0)
/usr/local/go/src/flag/flag.go:825 +0x55
flag.(*FlagSet).failf(0xc42039b3e0, 0x162768c, 0x22, 0xc4204d7790, 0x1, 0x1, 0xc4204d7738, 0x47c52e)
/usr/local/go/src/flag/flag.go:814 +0x116
flag.(*FlagSet).parseOne(0xc42039b3e0, 0x6c, 0xc42039b3e0, 0xc420335ec0)
/usr/local/go/src/flag/flag.go:873 +0xad8
flag.(*FlagSet).Parse(0xc42039b3e0, 0xc4200720e0, 0x1, 0x1, 0x2f6fd58, 0x0)
/usr/local/go/src/flag/flag.go:915 +0x60
gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/github.com/codegangsta/cli.Command.Run(0x1607d83, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1619b34, 0x15, 0x0, ...)
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/github.com/codegangsta/cli/command.go:98 +0xc33
gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/github.com/codegangsta/cli.(*App).Run(0xc420330100, 0xc4200720c0, 0x3, 0x3, 0x0, 0x0)
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/vendor/github.com/codegangsta/cli/app.go:159 +0x705
main.main()
/go/src/gitlab.com/gitlab-org/gitlab-ci-multi-runner/main.go:58 +0x24f
Expected behavior
Ehm ... just politely complain?
Used GitLab Runner version
Version: 1.10.4
Git revision: b32125f
Git branch: 1-10-stable
GO version: go1.7.5
Built: Tue, 31 Jan 2017 14:39:18 +0000
OS/Arch: linux/amd64