commit: 533f07434f5cb2671e01f6c4225494e910f2154f
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 14 15:55:07 2014 +0000
Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com>
CommitDate: Fri May 2 23:08:10 2014 +0000
URL:
http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=533f0743
portage/sync/modules/git: Use SyncBase class.
Use self.bin_command for the binary call.
---
pym/portage/sync/modules/git/git.py | 56 ++++++-------------------------------
1 file changed, 8 insertions(+), 48 deletions(-)
diff --git a/pym/portage/sync/modules/git/git.py
b/pym/portage/sync/modules/git/git.py
index 6806ef3..5e0e5df 100644
--- a/pym/portage/sync/modules/git/git.py
+++ b/pym/portage/sync/modules/git/git.py
@@ -11,9 +11,10 @@ good = create_color_func("GOOD")
bad = create_color_func("BAD")
warn = create_color_func("WARN")
from .timestamps import git_sync_timestamps
+from portage.sync.syncbase import SyncBase
-class GitSync(object):
+class GitSync(SyncBase):
'''Git sync class'''
short_desc = "Perform sync operations on git based repositories"
@@ -23,34 +24,8 @@ class GitSync(object):
return "GitSync"
- def can_progressbar(self, func):
- return False
-
-
def __init__(self):
- self.options = None
- self.settings = None
- self.logger = None
- self.repo = None
- self.xterm_titles = None
-
- self.has_git = True
- if portage.process.find_binary("git") is None:
- msg = ["Command not found: git",
- "Type \"emerge %s\" to enable git support." %
portage.const.GIT_PACKAGE_ATOM]
- for l in msg:
- writemsg_level("!!! %s\n" % l,
- level=logging.ERROR, noiselevel=-1)
- self.has_git = False
-
-
- def _kwargs(self, kwargs):
- '''Sets internal variables from kwargs'''
- self.options = kwargs.get('options', {})
- self.settings = self.options.get('settings', None)
- self.logger = self.options.get('logger', None)
- self.repo = self.options.get('repo', None)
- self.xterm_titles = self.options.get('xterm_titles', False)
+ SyncBase.__init__(self, "git", portage.const.GIT_PACKAGE_ATOM)
def exists(self, **kwargs):
@@ -59,37 +34,22 @@ class GitSync(object):
self._kwargs(kwargs)
elif not self.repo:
return False
- spawn_kwargs = self.options.get('spawn_kwargs', None)
if not os.path.exists(self.repo.location):
return False
exitcode = portage.process.spawn_bash("cd %s ; git rev-parse" %\
(portage._shell_quote(self.repo.location),),
- **portage._native_kwargs(spawn_kwargs))
+ **portage._native_kwargs(self.spawn_kwargs))
if exitcode == 128:
return False
return True
- def sync(self, **kwargs):
- '''Sync/Clone the repository'''
- if kwargs:
- self._kwargs(kwargs)
-
- if not self.has_git:
- return (1, False)
-
- if not self.exists():
- return self.new()
- return self._sync()
-
-
def new(self, **kwargs):
'''Do the initial clone of the repository'''
if kwargs:
self._kwargs(kwargs)
emerge_config = self.options.get('emerge_config', None)
- spawn_kwargs = self.options.get('spawn_kwargs', None)
portdb = self.options.get('portdb', None)
try:
if not os.path.exists(self.repo.location):
@@ -101,10 +61,11 @@ class GitSync(object):
msg = ">>> Cloning git repository from upstream into %s..." %
self.repo.location
self.logger(self.xterm_titles, msg)
writemsg_level(msg + "\n")
- exitcode = portage.process.spawn_bash("cd %s ; git clone %s ."
% \
+ exitcode = portage.process.spawn_bash("cd %s ; %s clone %s ." %
\
(portage._shell_quote(self.repo.location),
+ self.bin_command,
portage._shell_quote(self.repo.sync_uri)),
- **portage._native_kwargs(spawn_kwargs))
+ **portage._native_kwargs(self.spawn_kwargs))
if exitcode != os.EX_OK:
msg = "!!! git clone error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)
@@ -125,7 +86,6 @@ class GitSync(object):
# No kwargs call here; this is internal, so it should have been
# called by something which set the internal variables
emerge_config = self.options.get('emerge_config', None)
- spawn_kwargs = self.options.get('spawn_kwargs', None)
portdb = self.options.get('portdb', None)
msg = ">>> Starting git pull in %s..." % self.repo.location
@@ -133,7 +93,7 @@ class GitSync(object):
writemsg_level(msg + "\n")
exitcode = portage.process.spawn_bash("cd %s ; git pull" % \
(portage._shell_quote(self.repo.location),),
- **portage._native_kwargs(spawn_kwargs))
+ **portage._native_kwargs(self.spawn_kwargs))
if exitcode != os.EX_OK:
msg = "!!! git pull error in %s" % self.repo.location
self.logger(self.xterm_titles, msg)