You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"git.cheetah.cat/cheetah/moto-flash-data/commands"
|
|
"github.com/jessevdk/go-flags"
|
|
"github.com/rs/zerolog"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
func main() {
|
|
zerolog.SetGlobalLevel(zerolog.DebugLevel)
|
|
|
|
consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout}
|
|
consoleWriter.PartsExclude = []string{
|
|
zerolog.TimestampFieldName,
|
|
}
|
|
log.Logger = log.Output(consoleWriter)
|
|
//
|
|
parser := flags.NewParser(&commands.MotoCLI, flags.HelpFlag|flags.PassDoubleDash)
|
|
parser.NamespaceDelimiter = "-"
|
|
|
|
helpParser := flags.NewParser(&commands.MotoCLI, flags.HelpFlag)
|
|
helpParser.NamespaceDelimiter = "-"
|
|
|
|
_, err := parser.Parse()
|
|
handleError(helpParser, err)
|
|
}
|
|
func handleError(helpParser *flags.Parser, err error) {
|
|
if err != nil {
|
|
if err == commands.ErrShowHelpMessage {
|
|
showHelp(helpParser)
|
|
} else if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrCommandRequired {
|
|
showHelp(helpParser)
|
|
} else if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp {
|
|
fmt.Println(err)
|
|
os.Exit(0)
|
|
} else {
|
|
fmt.Printf("error: %s\n", err)
|
|
}
|
|
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func showHelp(helpParser *flags.Parser) {
|
|
helpParser.ParseArgs([]string{"-h"})
|
|
helpParser.WriteHelp(os.Stdout)
|
|
os.Exit(0)
|
|
}
|