From 7e2b496200d8281f28bb12997d9f8223d25fcb40 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 4 May 2017 16:20:10 +0200 Subject: modes --- main.go | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index c26a914..b132ba8 100644 --- a/main.go +++ b/main.go @@ -14,33 +14,23 @@ func usage() { os.Exit(2) } -func fatal(err error) { - fmt.Println(err) - os.Exit(1) +var modes = map[string]func() error{ + "-C": check, + "-G": generate, + "-S": sign, + "-V": verify, } func main() { if len(os.Args) < 2 { usage() } - switch os.Args[1] { - case "-C", "check": - if err := check(); err != nil { - fatal(err) - } - case "-G", "generate": - if err := generate(); err != nil { - fatal(err) - } - case "-S", "sign": - if err := sign(); err != nil { - fatal(err) - } - case "-V", "verify": - if err := verify(); err != nil { - fatal(err) - } - default: + mode, ok := modes[os.Args[1]] + if !ok { usage() } + if err := mode(); err != nil { + fmt.Println(err) + os.Exit(1) + } } -- cgit v1.2.3