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 }
// discoClient returns a client initialized with a server // based from --src or from the configuration file if --src // is blank. The returned client can then be used to discover // the blobRoot and syncHandlers. func (c *syncCmd) discoClient() *client.Client { var cl *client.Client if c.src == "" { cl = client.NewOrFail() } else { cl = client.New(c.src) } cl.SetupAuth() return cl }
// discoClient returns a client initialized with a server // based from --src or from the configuration file if --src // is blank. The returned client can then be used to discover // the blobRoot and syncHandlers. func discoClient() *client.Client { var cl *client.Client if *flagSrc == "" { cl = client.NewOrFail() } else { cl = client.New(*flagSrc) } cl.SetupAuth() return cl }
// discoClient returns a client initialized with a server // based from the configuration file. The returned client // can then be used to discover the blobRoot and syncHandlers. func (c *indexCmd) discoClient() *client.Client { var cl *client.Client cl = client.NewOrFail() cl.InsecureTLS = c.insecureTLS cl.SetHTTPClient(&http.Client{ Transport: cl.TransportForConfig(nil), }) cl.SetupAuth() return cl }
func (c *claimsCmd) client() *client.Client { var cl *client.Client if c.src == "" { cl = client.NewOrFail() } else { cl = client.New(c.src) } cl.SetLogger(c.logger) cl.SetHTTPClient(&http.Client{ Transport: cl.TransportForConfig(nil), }) cl.SetupAuth() return cl }
// discoClient returns a client initialized with a server // based from --src or from the configuration file if --src // is blank. The returned client can then be used to discover // the blobRoot and syncHandlers. func (c *syncCmd) discoClient() *client.Client { var cl *client.Client if c.src == "" { cl = client.NewOrFail() } else { cl = client.New(c.src) } cl.SetLogger(c.logger) cl.InsecureTLS = c.insecureTLS cl.SetHTTPClient(&http.Client{ Transport: cl.TransportForConfig(nil), }) cl.SetupAuth() return cl }
// newClient returns a Camlistore client for the server. // The server may be: // * blank, to use the default in the config file // * an alias, to use that named alias in the config file // * host:port // * https?://host[:port][/path] func newClient(server string) *client.Client { var cl *client.Client if server == "" { cl = client.NewOrFail() } else { cl = client.New(server) if err := cl.SetupAuth(); err != nil { log.Fatalf("Could not setup auth for connecting to %v: %v", server, err) } } cl.SetHTTPClient(&http.Client{ Transport: cl.TransportForConfig(nil), }) return cl }