MCPcopy
hub / github.com/perkeep/perkeep / syncAll

Method syncAll

cmd/pk/sync.go:250–298  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

248}
249
250func (c *syncCmd) syncAll() error {
251 if c.loop {
252 return cmdmain.UsageError("--all can't be used with --loop")
253 }
254 if c.third != "" {
255 return cmdmain.UsageError("--all can't be used with --thirdleg")
256 }
257 if c.dest != "" {
258 return cmdmain.UsageError("--all can't be used with --dest")
259 }
260
261 dc := c.discoClient()
262 syncHandlers, err := dc.SyncHandlers()
263 if err != nil {
264 return fmt.Errorf("sync handlers discovery failed: %v", err)
265 }
266 cmdmain.Logf("To be synced:\n")
267 for _, sh := range syncHandlers {
268 cmdmain.Logf("%v -> %v", sh.From, sh.To)
269 }
270 for _, sh := range syncHandlers {
271 from, err := client.New(client.OptionServer(sh.From), client.OptionInsecure(c.insecureTLS))
272 if err != nil {
273 return fmt.Errorf("creating source client from %q: %v", sh.From, err)
274 }
275 from.Verbose = *cmdmain.FlagVerbose
276 from.Logger = log.New(cmdmain.Stderr, "", log.LstdFlags)
277 if err := from.SetupAuth(); err != nil {
278 return fmt.Errorf("could not setup auth for connecting to %v: %v", sh.From, err)
279 }
280
281 to, err := client.New(client.OptionServer(sh.To), client.OptionInsecure(c.insecureTLS))
282 if err != nil {
283 return fmt.Errorf("creating destination client to %q: %v", sh.To, err)
284 }
285 to.Verbose = *cmdmain.FlagVerbose
286 to.Logger = log.New(cmdmain.Stderr, "", log.LstdFlags)
287 if err := to.SetupAuth(); err != nil {
288 return fmt.Errorf("could not setup auth for connecting to %v: %v", sh.To, err)
289 }
290 cmdmain.Logf("Now syncing: %v -> %v", sh.From, sh.To)
291 stats, err := c.doPass(from, to, nil)
292 cmdmain.Logf("sync stats, blobs: %d, bytes %d\n", stats.BlobsCopied, stats.BytesCopied)
293 if err != nil {
294 return err
295 }
296 }
297 return nil
298}
299
300// discoClient returns a client initialized with a server
301// based from --src or from the configuration file if --src

Callers 1

RunCommandMethod · 0.95

Calls 9

discoClientMethod · 0.95
doPassMethod · 0.95
UsageErrorTypeAlias · 0.92
LogfFunction · 0.92
NewFunction · 0.92
OptionServerFunction · 0.92
OptionInsecureFunction · 0.92
SyncHandlersMethod · 0.80
SetupAuthMethod · 0.80

Tested by

no test coverage detected