commit: 323362ad64d9b0477a662c0d58eeec89e7e3948e Author: Devan Franchini <twitch153 <AT> gentoo <DOT> org> AuthorDate: Thu May 29 23:12:58 2014 +0000 Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com> CommitDate: Thu Jun 12 21:11:49 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/layman.git;a=commit;h=323362ad
bzr.py: Adds update() function Also adds _fix_brz_source() function to be used by add() and update(). --- layman/overlays/bzr.py | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/layman/overlays/bzr.py b/layman/overlays/bzr.py index 9cfa8b5..20d2491 100644 --- a/layman/overlays/bzr.py +++ b/layman/overlays/bzr.py @@ -49,6 +49,16 @@ class BzrOverlay(OverlaySource): config, _location, ignore) self.subpath = None + def _fix_bzr_source(self, source): + ''' + Adds trailing slash to source URL if needed. + + @params source: source URL, string. + ''' + if source.endswith("/"): + return source + return source + '/' + def add(self, base): '''Add overlay.''' @@ -58,10 +68,7 @@ class BzrOverlay(OverlaySource): cfg_opts = self.config["bzr_addopts"] target = path([base, self.parent.name]) - if self.src.endswith("/"): - src = self.src - else: - src = self.src + '/' + src = self._fix_bzr_source(self.src) # bzr get SOURCE TARGET if len(cfg_opts): @@ -73,6 +80,27 @@ class BzrOverlay(OverlaySource): self.run_command(self.command(), args, cmd=self.type), cwd=target) + def update(self, base, src): + ''' + Updates overlay src-url. + + @params base: base location where all overlays are installed. + @params src: source URL. + ''' + + if not self.supported(): + return 1 + + target = path([base, self.parent.name]) + + # bzr bind SOURCE + args = ['bind', self._fix_bzr_source(src)] + if self.config['quiet']: + args.append('--quiet') + return self.postsync( + self.run_command(self.command(), args, cmd=self.type), + cwd=target) + def sync(self, base): '''Sync overlay.'''