本文整理汇总了Golang中camlistore/org/pkg/cmdmain.UsageError函数的典型用法代码示例。如果您正苦于以下问题:Golang UsageError函数的具体用法?Golang UsageError怎么用?Golang UsageError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了UsageError函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RunCommand
func (c *shareCmd) RunCommand(args []string) error {
unsigned := schema.NewShareRef(schema.ShareHaveRef, c.transitive)
if c.search != "" {
if len(args) != 0 {
return cmdmain.UsageError("when using the -search flag, share takes zero arguments")
}
var q search.SearchQuery
if err := json.Unmarshal([]byte(c.search), &q); err != nil {
return cmdmain.UsageError(fmt.Sprintf("invalid search: %s", err))
}
unsigned.SetShareSearch(&q)
} else {
if len(args) != 1 {
return cmdmain.UsageError("share takes at most one argument")
}
target, ok := blob.Parse(args[0])
if !ok {
return cmdmain.UsageError("invalid blobref")
}
unsigned.SetShareTarget(target)
}
if c.duration != 0 {
unsigned.SetShareExpiration(time.Now().Add(c.duration))
}
pr, err := getUploader().UploadAndSignBlob(unsigned)
handleResult("share", pr, err)
return nil
}
示例2: checkFlags
func (c *serverCmd) checkFlags(args []string) error {
if len(args) != 0 {
c.Usage()
}
if c.mini {
if c.things {
return cmdmain.UsageError("--mini and --makethings are mutually exclusive.")
}
c.publish = false
c.hello = false
}
if c.things && !c.wipe {
return cmdmain.UsageError("--makethings requires --wipe.")
}
nindex := 0
for _, v := range []bool{c.mongo, c.mysql, c.postgres, c.sqlite, c.memory} {
if v {
nindex++
}
}
if nindex > 1 {
return fmt.Errorf("Only one index option allowed")
}
if _, err := strconv.ParseInt(c.port, 0, 0); err != nil {
return fmt.Errorf("Invalid -port value: %q", c.port)
}
return nil
}
示例3: RunCommand
func (c *desCmd) RunCommand(args []string) error {
if len(args) == 0 {
return cmdmain.UsageError("requires blobref")
}
var blobs []blob.Ref
for _, arg := range args {
br, ok := blob.Parse(arg)
if !ok {
return cmdmain.UsageError(fmt.Sprintf("invalid blobref %q", arg))
}
blobs = append(blobs, br)
}
var at time.Time // TODO: implement. from "2 days ago" "-2d", "-2h", "2013-02-05", etc
cl := newClient(c.server)
res, err := cl.Describe(&search.DescribeRequest{
BlobRefs: blobs,
Depth: c.depth,
At: types.Time3339(at),
})
if err != nil {
return err
}
resj, err := json.MarshalIndent(res, "", " ")
if err != nil {
return err
}
resj = append(resj, '\n')
_, err = os.Stdout.Write(resj)
return err
}
示例4: RunCommand
func (c *syncCmd) RunCommand(args []string) error {
if c.loop && !c.removeSrc {
return cmdmain.UsageError("Can't use --loop without --removesrc")
}
if c.verbose {
c.logger = log.New(os.Stderr, "", 0) // else nil
}
if c.all {
err := c.syncAll()
if err != nil {
return fmt.Errorf("sync all failed: %v", err)
}
return nil
}
if c.dest == "" {
return cmdmain.UsageError("No --dest specified.")
}
discl := c.discoClient()
discl.SetLogger(c.logger)
src, err := discl.BlobRoot()
if err != nil {
return fmt.Errorf("Failed to get blob source: %v", err)
}
sc := client.New(src)
sc.SetupAuth()
sc.SetLogger(c.logger)
dc := client.New(c.dest)
dc.SetupAuth()
dc.SetLogger(c.logger)
var tc *client.Client
if c.third != "" {
tc = client.New(c.third)
tc.SetupAuth()
tc.SetLogger(c.logger)
}
passNum := 0
for {
passNum++
stats, err := c.doPass(sc, dc, tc)
if c.verbose {
log.Printf("sync stats - pass: %d, blobs: %d, bytes %d\n", passNum, stats.BlobsCopied, stats.BytesCopied)
}
if err != nil {
return fmt.Errorf("sync failed: %v", err)
}
if !c.loop {
break
}
}
return nil
}
示例5: syncAll
func (c *syncCmd) syncAll() error {
if c.loop {
return cmdmain.UsageError("--all can't be used with --loop")
}
if c.third != "" {
return cmdmain.UsageError("--all can't be used with --thirdleg")
}
if c.dest != "" {
return cmdmain.UsageError("--all can't be used with --dest")
}
dc := c.discoClient()
dc.SetLogger(c.logger)
syncHandlers, err := dc.SyncHandlers()
if err != nil {
return fmt.Errorf("sync handlers discovery failed: %v", err)
}
if c.verbose {
log.Printf("To be synced:\n")
for _, sh := range syncHandlers {
log.Printf("%v -> %v", sh.From, sh.To)
}
}
for _, sh := range syncHandlers {
from := client.New(sh.From)
from.SetLogger(c.logger)
from.InsecureTLS = c.insecureTLS
from.SetHTTPClient(&http.Client{
Transport: from.TransportForConfig(nil),
})
if err := from.SetupAuth(); err != nil {
return fmt.Errorf("could not setup auth for connecting to %v: %v", sh.From, err)
}
to := client.New(sh.To)
to.SetLogger(c.logger)
to.InsecureTLS = c.insecureTLS
to.SetHTTPClient(&http.Client{
Transport: to.TransportForConfig(nil),
})
if err := to.SetupAuth(); err != nil {
return fmt.Errorf("could not setup auth for connecting to %v: %v", sh.To, err)
}
if c.verbose {
log.Printf("Now syncing: %v -> %v", sh.From, sh.To)
}
stats, err := c.doPass(from, to, nil)
if c.verbose {
log.Printf("sync stats, blobs: %d, bytes %d\n", stats.BlobsCopied, stats.BytesCopied)
}
if err != nil {
return err
}
}
return nil
}
示例6: RunCommand
func (c *debugCmd) RunCommand(args []string) error {
if args == nil || len(args) != 2 {
return cmdmain.UsageError("Incorrect number of arguments.")
}
subMode, ok := debugSubModes[args[0]]
if !ok {
return cmdmain.UsageError(fmt.Sprintf("Invalid submode: %v", args[0]))
}
subMode.fun(args[1])
return nil
}
示例7: RunCommand
func (c *shareCmd) RunCommand(args []string) error {
if len(args) != 1 {
return cmdmain.UsageError("share takes exactly one argument, a blobref")
}
br := blobref.Parse(args[0])
if br == nil {
return cmdmain.UsageError("invalid blobref")
}
pr, err := getUploader().UploadShare(br, c.transitive)
handleResult("share", pr, err)
return nil
}
示例8: RunCommand
func (c *gceCmd) RunCommand(args []string) error {
if c.verbose {
gce.Verbose = true
}
if c.project == "" {
return cmdmain.UsageError("Missing --project flag.")
}
if (c.certFile == "") != (c.keyFile == "") {
return cmdmain.UsageError("--cert and --key must both be given together.")
}
if c.certFile == "" && c.hostname == "" {
return cmdmain.UsageError("Either --hostname, or --cert & --key must provided.")
}
config := gce.NewOAuthConfig(readFile(clientIdDat), readFile(clientSecretDat))
config.RedirectURL = "urn:ietf:wg:oauth:2.0:oob"
instConf := &gce.InstanceConf{
Name: c.instName,
Project: c.project,
Machine: c.machine,
Zone: c.zone,
CertFile: c.certFile,
KeyFile: c.keyFile,
Hostname: c.hostname,
}
if c.sshPub != "" {
instConf.SSHPub = strings.TrimSpace(readFile(c.sshPub))
}
depl := &gce.Deployer{
Client: oauth2.NewClient(oauth2.NoContext, oauth2.ReuseTokenSource(nil, &oauthutil.TokenSource{
Config: config,
CacheFile: c.project + "-token.json",
AuthCode: func() string {
fmt.Println("Get auth code from:")
fmt.Printf("%v\n", config.AuthCodeURL("my-state", oauth2.AccessTypeOffline, oauth2.ApprovalForce))
fmt.Println("Enter auth code:")
sc := bufio.NewScanner(os.Stdin)
sc.Scan()
return strings.TrimSpace(sc.Text())
},
})),
Conf: instConf,
}
inst, err := depl.Create(context.TODO())
if err != nil {
return err
}
log.Printf("Instance is up at %s", inst.NetworkInterfaces[0].AccessConfigs[0].NatIP)
return nil
}
示例9: checkArgs
func (c *attrCmd) checkArgs(args []string) error {
if c.del {
if c.add {
return cmdmain.UsageError("Add and del options are exclusive")
}
if len(args) < 2 {
return cmdmain.UsageError("Attr -del takes at least 2 args: <permanode> <attr> [<value>]")
}
return nil
}
if len(args) != 3 {
return cmdmain.UsageError("Attr takes 3 args: <permanode> <attr> <value>")
}
return nil
}
示例10: RunCommand
func (c *mountCmd) RunCommand(args []string) error {
err := c.checkFlags(args)
if err != nil {
return cmdmain.UsageError(fmt.Sprint(err))
}
if !*noBuild {
if err := build(filepath.Join("cmd", "cammount")); err != nil {
return fmt.Errorf("Could not build cammount: %v", err)
}
}
c.env.SetCamdevVars(c.altkey)
tryUnmount(mountpoint)
if err := os.Mkdir(mountpoint, 0700); err != nil && !os.IsExist(err) {
return fmt.Errorf("Could not make mount point: %v", err)
}
blobserver := "http://localhost:" + c.port + c.path
if c.tls {
blobserver = strings.Replace(blobserver, "http://", "https://", 1)
}
cmdBin := filepath.Join("bin", "cammount")
cmdArgs := []string{
"-xterm=" + strconv.FormatBool(c.xterm),
"-debug=" + strconv.FormatBool(c.debug),
"-server=" + blobserver,
mountpoint,
}
cmdArgs = append(cmdArgs, args...)
fmt.Printf("Cammount running with mountpoint %v. Press 'q' <enter> or ctrl-c to shut down.\n", mountpoint)
return runExec(cmdBin, cmdArgs, c.env)
}
示例11: storageFromParam
// which is one of "src", "dest", or "thirdleg"
func (c *syncCmd) storageFromParam(which storageType, val string) (blobserver.Storage, error) {
if val == "" {
switch which {
case storageThird:
return nil, nil
case storageSource:
discl := c.discoClient()
discl.SetLogger(c.logger)
src, err := discl.BlobRoot()
if err != nil {
return nil, fmt.Errorf("Failed to discover source server's blob path: %v", err)
}
val = src
}
if val == "" {
return nil, cmdmain.UsageError("No --" + string(which) + " flag value specified")
}
}
if which == storageDest && val == "stdout" {
return nil, nil
}
if looksLikePath(val) {
disk, err := localdisk.New(val)
if err != nil {
return nil, fmt.Errorf("Interpreted --%v=%q as a local disk path, but got error: %v", val, err)
}
return disk, nil
}
cl := client.New(val)
// TODO(mpl): probably needs the transport setup for trusted certs here.
cl.SetupAuth()
cl.SetLogger(c.logger)
return noHub{cl}, nil
}
示例12: RunCommand
func (c *syncCmd) RunCommand(args []string) error {
if c.loop && !c.removeSrc {
return cmdmain.UsageError("Can't use --loop without --removesrc")
}
if c.verbose {
c.logger = log.New(cmdmain.Stderr, "", 0) // else nil
}
if c.dumpConfigFlag {
err := c.dumpConfig()
if err != nil {
return fmt.Errorf("dumb-config failed: %v", err)
}
return nil
}
if c.all {
err := c.syncAll()
if err != nil {
return fmt.Errorf("sync all failed: %v", err)
}
return nil
}
ss, err := c.storageFromParam("src", c.src)
if err != nil {
return err
}
ds, err := c.storageFromParam("dest", c.dest)
if err != nil {
return err
}
ts, err := c.storageFromParam("thirdleg", c.third)
if err != nil {
return err
}
differentKeyIDs := fmt.Sprintf("WARNING: the source server GPG key ID (%v) and the destination's (%v) differ. All blobs will be synced, but because the indexer at the other side is indexing claims by a different user, you may not see what you expect in that server's web UI, etc.", c.srcKeyID, c.destKeyID)
if c.dest != "stdout" && !c.oneIsDisk && c.srcKeyID != c.destKeyID { // both blank is ok.
// Warn at the top (and hope the user sees it and can abort if it was a mistake):
fmt.Fprintln(cmdmain.Stderr, differentKeyIDs)
// Warn also at the end (in case the user missed the first one)
defer fmt.Fprintln(cmdmain.Stderr, differentKeyIDs)
}
passNum := 0
for {
passNum++
stats, err := c.doPass(ss, ds, ts)
if c.verbose {
log.Printf("sync stats - pass: %d, blobs: %d, bytes %d\n", passNum, stats.BlobsCopied, stats.BytesCopied)
}
if err != nil {
return fmt.Errorf("sync failed: %v", err)
}
if !c.loop {
break
}
}
return nil
}
示例13: RunCommand
func (c *getCmd) RunCommand(args []string) error {
err := c.checkFlags(args)
if err != nil {
return cmdmain.UsageError(fmt.Sprint(err))
}
if !*noBuild {
if err := build(filepath.Join("cmd", "camget")); err != nil {
return fmt.Errorf("Could not build camget: %v", err)
}
}
c.env.SetCamdevVars(c.altkey)
cmdBin := filepath.Join("bin", "camget")
cmdArgs := []string{
"-verbose=" + strconv.FormatBool(*cmdmain.FlagVerbose || !quiet),
}
if !isSharedMode(args) {
blobserver := "http://localhost:" + c.port + c.path
if c.tls {
blobserver = strings.Replace(blobserver, "http://", "https://", 1)
}
cmdArgs = append(cmdArgs, "-server="+blobserver)
}
cmdArgs = append(cmdArgs, args...)
return runExec(cmdBin, cmdArgs, c.env)
}
示例14: RunCommand
func (c *putCmd) RunCommand(args []string) error {
err := c.checkFlags(args)
if err != nil {
return cmdmain.UsageError(fmt.Sprint(err))
}
if err := c.build(); err != nil {
return fmt.Errorf("Could not build camput: %v", err)
}
if err := c.setEnvVars(); err != nil {
return fmt.Errorf("Could not setup the env vars: %v", err)
}
blobserver := "http://localhost:" + c.port + c.path
if c.tls {
blobserver = strings.Replace(blobserver, "http://", "https://", 1)
}
cmdBin := filepath.Join("bin", "camput")
cmdArgs := []string{
"-verbose=" + strconv.FormatBool(c.verbose),
"-server=" + blobserver,
}
cmdArgs = append(cmdArgs, args...)
return runExec(cmdBin, cmdArgs, c.env)
}
示例15: RunCommand
func (c *gaeCmd) RunCommand(args []string) error {
err := c.checkFlags(args)
if err != nil {
return cmdmain.UsageError(fmt.Sprint(err))
}
applicationDir := filepath.Join("server", "appengine")
if _, err := os.Stat(applicationDir); err != nil {
return fmt.Errorf("Appengine application dir not found at %s", applicationDir)
}
if err = c.checkSDK(); err != nil {
return err
}
if err = c.mirrorSourceRoot(applicationDir); err != nil {
return err
}
devAppServerBin := filepath.Join(c.sdk, "dev_appserver.py")
cmdArgs := []string{
"--skip_sdk_update_check",
fmt.Sprintf("--port=%s", c.port),
}
if c.all {
cmdArgs = append(cmdArgs, "--host", "0.0.0.0")
}
if c.wipe {
cmdArgs = append(cmdArgs, "--clear_datastore")
}
cmdArgs = append(cmdArgs, args...)
cmdArgs = append(cmdArgs, applicationDir)
return runExec(devAppServerBin, cmdArgs, NewCopyEnv())
}