rsync_provider.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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() error {
  32. return nil
  33. }
  34. // TODO: implement this
  35. func (p *rsyncProvider) Terminate() error {
  36. return nil
  37. }
  38. // TODO: implement this
  39. func (p *rsyncProvider) Wait() error {
  40. return nil
  41. }