rsync_provider.go 950 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package worker
  2. import "time"
  3. type rsyncConfig struct {
  4. name string
  5. upstreamURL, password, excludeFile string
  6. workingDir, logDir, logFile string
  7. useIPv6 bool
  8. interval time.Duration
  9. }
  10. // An RsyncProvider provides the implementation to rsync-based syncing jobs
  11. type rsyncProvider struct {
  12. baseProvider
  13. rsyncConfig
  14. }
  15. func newRsyncProvider(c rsyncConfig) (*rsyncProvider, error) {
  16. // TODO: check config options
  17. provider := &rsyncProvider{
  18. baseProvider: baseProvider{
  19. name: c.name,
  20. ctx: NewContext(),
  21. interval: c.interval,
  22. },
  23. rsyncConfig: c,
  24. }
  25. provider.ctx.Set(_WorkingDirKey, c.workingDir)
  26. provider.ctx.Set(_LogDirKey, c.logDir)
  27. provider.ctx.Set(_LogFileKey, c.logFile)
  28. return provider, nil
  29. }
  30. // TODO: implement this
  31. func (p *rsyncProvider) Start() {
  32. }
  33. // TODO: implement this
  34. func (p *rsyncProvider) Terminate() {
  35. }