[Pkg-bazaar-commits] r120 ./bzr-builddeb/people/jdw/merge_upstream: Add support for .zip archives on import.

James Westby jw+debian at jameswestby.net
Sat Jun 23 00:10:29 UTC 2007


------------------------------------------------------------
revno: 120
committer: James Westby <jw+debian at jameswestby.net>
branch nick: merge_upstream
timestamp: Sat 2007-06-23 01:10:29 +0100
message:
  Add support for .zip archives on import.
  
  Also make Aaron copyright holder for the code that is stolen from bzrtools.
modified:
  merge_upstream.py
  tests/__init__.py
-------------- next part --------------
=== modified file 'merge_upstream.py'
--- a/merge_upstream.py	2007-06-22 22:52:45 +0000
+++ b/merge_upstream.py	2007-06-23 00:10:29 +0000
@@ -1,6 +1,7 @@
 #    merge_upstream.py -- Merge new upstream versions of packages.
 #    Copyright (C) 2007 Reinhard Tartler <siretart at tauware.de>
 #                  2007 James Westby <jw+debian at jameswestby.net>
+#                  2007 Aaron Bentley <aaron.bentley at utoronto.ca>
 #
 #    This file is part of bzr-builddeb.
 #
@@ -26,9 +27,9 @@
 from bzrlib.errors import BzrCommandError
 from bzrlib.plugins.bzrtools.upstream_import import (import_tar,
                                                      import_dir,
+                                                     import_zip,
                                                      )
 
-# TODO: handle more input sources.
 # TODO: rename/repack tarball in to place.
 # TODO: drop requirement for revision of last upstream, use tags or something
 #       instead.
@@ -83,6 +84,8 @@
             import_tar(tree, tar_input)
           finally:
             tar_input.close()
+        elif source.endswith('.zip'):
+            import_zip(tree, open(source, 'rb'))
       tree.set_parent_ids([rev_id])
       tree.branch.set_last_revision_info(revno, rev_id)
       tree.commit('import upstream from %s' % os.path.basename(source))
@@ -105,5 +108,7 @@
             import_tar(tree, tar_input)
           finally:
             tar_input.close()
+        elif source.endswith('.zip'):
+            import_zip(tree, open(source, 'rb'))
       tree.commit('import upstream from %s' % os.path.basename(source))
 

=== modified file 'tests/__init__.py'
--- a/tests/__init__.py	2007-06-22 22:52:45 +0000
+++ b/tests/__init__.py	2007-06-23 00:10:29 +0000
@@ -18,6 +18,12 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #
 
+import changes
+import config
+import shutil
+import tarfile
+import zipfile
+
 from copy import deepcopy
 import doctest
 import os
@@ -25,11 +31,6 @@
 
 from bzrlib.tests import TestUtil, adapt_modules
 
-import changes
-import config
-import shutil
-import tarfile
-
 def make_new_upstream_dir(dir):
   def _make_upstream_dir():
     os.rename('package-0.2', dir)
@@ -55,11 +56,28 @@
     shutil.rmtree('package-0.2')
   return _make_upstream_tarball
 
+def make_new_upstream_tarball_zip(tarball):
+  def _make_upstream_tarball():
+    zip = zipfile.ZipFile(tarball, 'w')
+    try:
+      zip.writestr('package-0.2/', '')
+      for (dirpath, dirnames, names) in os.walk('package-0.2'):
+        for dir in dirnames:
+          zip.writestr(os.path.join(dirpath, dir, ''), '')
+        for name in names:
+          zip.write(os.path.join(dirpath, name))
+    finally:
+      zip.close()
+    shutil.rmtree('package-0.2')
+  return _make_upstream_tarball
+
 tarball_functions = [('dir', make_new_upstream_dir, '../package-0.2'),
                      ('.tar.gz', make_new_upstream_tarball,
                       '../package-0.2.tar.gz'),
                      ('.tar.bz2', make_new_upstream_tarball_bz2,
                       '../package-0.2.tar.bz2'),
+                     ('.zip', make_new_upstream_tarball_zip,
+                      '../package-0.2.zip'),
                      ]
 
 



More information about the Pkg-bazaar-commits mailing list