Implemented _rsync_pull method
Change-Id: If52f8ae268e95e1d05e3d9a9a835534aa9447937
diff --git a/rsync_remote.py b/rsync_remote.py
index 6585796..92c29d0 100644
--- a/rsync_remote.py
+++ b/rsync_remote.py
@@ -43,6 +43,22 @@
cmd = 'rsync {opts} {allextra} {source} {dest}'.format(**(locals()))
return self.shell.shell(cmd)[1]
+ def _rsync_pull(self, source='', dest=None, opts='', extra=None):
+ source = self.url.urljoin(self.symlink_target(source))
+ #opts = '--archive --force --ignore-errors --delete --copy-dirlinks'
+ opts = '--archive --force --ignore-errors --delete'
+ # TODO: if dest is dir - detect dest on this alhorithm
+ # or don't touch it if it file
+ if dest is None:
+ raise RuntimeError('There are no "dest" specified for pull {}'
+ ''.format(source))
+ dest = self.url.a_file(dest, os.path.split(self.url.path)[-1])
+ allextra = self.rsync_extra_params
+ if extra is not None:
+ allextra = ' '.join((allextra, extra))
+ cmd = 'rsync {opts} {allextra} {source} {dest}'.format(**(locals()))
+ return self.shell.shell(cmd)[1]
+
def _rsync_ls(self, dirname=None, pattern=r'.*', opts=''):
extra = '--no-v'
out = self._rsync_push(dest=dirname, opts=opts, extra=extra)