func main() { var handler func(*config.Config, []string) error cfg := &config.Config{} if err := cfg.Load(flagConfig); err != nil { fmt.Println("Error: " + err.Error()) os.Exit(1) } if len(flag.Args()) == 0 { utils.PrintUsage(os.Stderr, cmdUsage) } switch flag.Args()[0] { case "reload", "support": handler = handleService default: utils.PrintUsage(os.Stderr, cmdUsage) os.Exit(1) } err := handler(cfg, flag.Args()) if err == os.ErrInvalid { utils.PrintUsage(os.Stderr, cmdUsage) } else if err != nil { fmt.Fprintln(os.Stderr, "Error: "+err.Error()) } }
func init() { flag.StringVar(&flagConfig, "c", config.DefaultConfigFile, "configuration file path") flag.IntVar(&flagDebug, "d", 0, "debugging level") flag.BoolVar(&flagHelp, "h", false, "display this help and exit") flag.BoolVar(&flagVersion, "V", false, "display software version and exit") flag.Usage = func() { utils.PrintUsage(os.Stderr, cmdUsage) } flag.Parse() if flagHelp { utils.PrintUsage(os.Stdout, cmdUsage) } else if flagVersion { utils.PrintVersion(version) os.Exit(0) } else if flagConfig == "" { fmt.Fprintf(os.Stderr, "Error: configuration file path is mandatory\n") utils.PrintUsage(os.Stderr, cmdUsage) } }
func init() { flag.StringVar(&flagConfig, "c", config.DefaultConfigFile, "configuration file path") flag.BoolVar(&flagHelp, "h", false, "display this help and exit") flag.StringVar(&flagLog, "l", config.DefaultLogFile, "log file path") flag.StringVar(&flagLogLevel, "L", config.DefaultLogLevel, "logging level") flag.BoolVar(&flagVersion, "V", false, "display software version and exit") flag.Usage = func() { utils.PrintUsage(os.Stderr, cmdUsage) } flag.Parse() if flagHelp { utils.PrintUsage(os.Stdout, cmdUsage) } else if flagVersion { utils.PrintVersion(version) os.Exit(0) } else if flagConfig == "" { fmt.Fprintf(os.Stderr, "Error: configuration file path is mandatory\n") utils.PrintUsage(os.Stderr, cmdUsage) } if logLevel, err = logger.GetLevelByName(flagLogLevel); err != nil { fmt.Fprintf(os.Stderr, "Error: invalid log level `%s'\n", flagLogLevel) os.Exit(1) } }