func main() { jsonsign.AddFlags() client.AddFlags() flag.Parse() if flag.NArg() == 0 { usage("No mode given.") } mode := flag.Arg(0) cmd, ok := modeCommand[mode] if !ok { usage(fmt.Sprintf("Unknown mode %q", mode)) } var up *Uploader if mode != "init" { up = newUploader() } cmdFlags := modeFlags[mode] err := cmdFlags.Parse(flag.Args()[1:]) if err != nil { err = ErrUsage } else { err = cmd.RunCommand(up, cmdFlags.Args()) } if ue, isUsage := err.(UsageError); isUsage { if isUsage { errf("%s\n", ue) } cmd.Usage() errf("\nGlobal options:\n") flag.PrintDefaults() if hasFlags(cmdFlags) { errf("\nMode-specific options for mode %q:\n", mode) cmdFlags.PrintDefaults() } os.Exit(1) } if *flagVerbose { stats := up.Stats() log.Printf("Client stats: %s", stats.String()) log.Printf(" #HTTP reqs: %d", up.transport.reqs) } if err != nil || wereErrors /* TODO: remove this part */ { log.Printf("Error: %v", err) os.Exit(2) } }
func init() { if debug, _ := strconv.ParseBool(os.Getenv("CAMLI_DEBUG")); debug { flag.BoolVar(&flagProxyLocal, "proxy_local", false, "If true, the HTTP_PROXY environment is also used for localhost requests. This can be helpful during debugging.") } cmdmain.ExtraFlagRegistration = func() { jsonsign.AddFlags() client.AddFlags() } cmdmain.PreExit = func() { up := getUploader() stats := up.Stats() log.Printf("Client stats: %s", stats.String()) log.Printf(" #HTTP reqs: %d", up.transport.Requests()) } }
func main() { jsonsign.AddFlags() client.AddFlags() flag.Parse() camputMain(flag.Args()...) }