Mercurial > piecrust2
diff piecrust/publishing/rsync.py @ 885:13e8b50a2113
publish: Fix publishers API and add a simple "copy" publisher.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 20 Jun 2017 21:12:35 -0700 |
parents | f6a13dba38d6 |
children |
line wrap: on
line diff
--- a/piecrust/publishing/rsync.py Tue Jun 20 21:10:39 2017 -0700 +++ b/piecrust/publishing/rsync.py Tue Jun 20 21:12:35 2017 -0700 @@ -1,21 +1,22 @@ -from piecrust.publishing.base import ShellCommandPublisherBase +from piecrust.publishing.shell import ShellCommandPublisherBase class RsyncPublisher(ShellCommandPublisherBase): PUBLISHER_NAME = 'rsync' PUBLISHER_SCHEME = 'rsync' + def parseUrlTarget(self, url): + self.config = { + 'destination': (url.netloc + url.path) + } + def _getCommandArgs(self, ctx): - if self.has_url_config: - orig = ctx.bake_out_dir - dest = self.config.netloc + self.config.path - else: - orig = self.getConfigValue('source', ctx.bake_out_dir) - dest = self.getConfigValue('destination') + orig = self.config.get('source', ctx.bake_out_dir) + dest = self.config.get('destination') + if not dest: + raise Exception("No destination specified.") - rsync_options = None - if not self.has_url_config: - rsync_options = self.getConfigValue('options') + rsync_options = self.config.get('options') if rsync_options is None: rsync_options = ['-avc', '--delete']