changeset 5593:767e70bc5653

Enable weird Karmic tar-1.22 fallback.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Tue, 22 Sep 2009 22:06:27 +0200
parents d7d576acba6c
children d85f6aa05267
files gub/repository.py
diffstat 1 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/gub/repository.py	Tue Sep 22 21:41:01 2009 +0200
+++ b/gub/repository.py	Tue Sep 22 22:06:27 2009 +0200
@@ -148,7 +148,7 @@
             return os.path.exists (os.path.join (tools_bin, self.vc_system[1:]))
         return False
     def migrate (self, dir, dir_slash_vcs):
-        self.info ('migrate not implemented for: ' + self.vc_system + '\n')
+        self.info ('migrate not implemented for: ' + self.vc_system)
     def __init__ (self, dir, source):
         self.settings = None
         self.source = source
@@ -211,6 +211,10 @@
         self.logger = logger
     def info (self, message):
         self.logger.write_log (message + '\n', 'info')
+    def error (self, message):
+        self.logger.write_log (message + '\n', 'error')
+    def warning (self, message):
+        self.logger.write_log (message + '\n', 'warning')
     def filter_branch_arg (self, branch):
         if '=' in branch:
             (name, branch) = tuple (branch.split ('='))
@@ -467,7 +471,10 @@
         #if self.oslog:  #urg, will be fixed when .source is mandatory
         #    _v = self.oslog.verbose_flag ()
         _z = misc.compression_flag (tarball)
-        self.system ('tar -C %(destdir)s/.. %(_v)s%(_z)s -xf %(tarball)s' % locals ())
+        status = self.system ('tar -C %(destdir)s/.. %(_v)s%(_z)s -xf %(tarball)s' % locals (), ignore_errors=True)
+        if status:
+            self.error ('retry using gzip pipe')
+            self.system ('gzip -dc %(tarball)s | tar -C %(destdir)s/.. %(_v)s -xf-' % locals ())
 
     def version (self):
         return self._version
@@ -529,7 +536,7 @@
 
     def migrate (self, dir, dir_slash_vcs):
         if os.path.isdir (os.path.join (dir, 'objects')):
-            self.info ('migrating %(dir)s --> %(dir_slash_vcs)s\n' % locals ())
+            self.info ('migrating %(dir)s --> %(dir_slash_vcs)s' % locals ())
             self.system ('''
 mkdir -p %(dir_slash_vcs)s
 mv %(dir)s/* %(dir_slash_vcs)s
@@ -897,7 +904,7 @@
             self._checkout ()
         elif self._current_revision () != self.revision:
             self._update (self.revision)
-        self.info ('downloaded version: ' + self.version () + '\n')
+        self.info ('downloaded version: ' + self.version ())
 
     def _copy_working_dir (self, dir, copy):
         vc_system = self.vc_system