[Sugar-devel] [PATCH sugar-toolkit] bundlebuilder: refactor get_files_git to Packager to avoid code duplication

Simon Schampijer simon at schampijer.de
Mon Sep 19 13:12:39 EDT 2011


Follow up patch for b582736375218e8944b3ce3daac667c7910a7e73

Signed-off-by: Simon Schampijer <simon at laptop.org>
---
 src/sugar/activity/bundlebuilder.py |   40 ++++++++++++----------------------
 1 files changed, 14 insertions(+), 26 deletions(-)

diff --git a/src/sugar/activity/bundlebuilder.py b/src/sugar/activity/bundlebuilder.py
index 8263239..2cb81d7 100644
--- a/src/sugar/activity/bundlebuilder.py
+++ b/src/sugar/activity/bundlebuilder.py
@@ -156,6 +156,18 @@ class Packager(object):
         if not os.path.exists(self.config.dist_dir):
             os.mkdir(self.config.dist_dir)
 
+    def get_files_in_git(self):
+        git_ls = subprocess.Popen(['git', 'ls-files'], stdout=subprocess.PIPE,
+                                  cwd=self.config.source_dir)
+        stdout, _ = git_ls.communicate()
+        if git_ls.returncode:
+            # Fall back to filtered list
+            return list_files(self.config.source_dir,
+                              IGNORE_DIRS, IGNORE_FILES)
+
+        # pylint: disable=E1103
+        return [path.strip() for path in stdout.strip('\n').split('\n')]
+
 
 class XOPackager(Packager):
 
@@ -170,7 +182,7 @@ class XOPackager(Packager):
         bundle_zip = zipfile.ZipFile(self.package_path, 'w',
                                      zipfile.ZIP_DEFLATED)
 
-        for f in self._get_files_in_git():
+        for f in self.get_files_in_git():
             bundle_zip.write(os.path.join(self.config.source_dir, f),
                              os.path.join(self.config.bundle_root_dir, f))
         locale_dir = os.path.join(self.config.source_dir, 'locale')
@@ -182,18 +194,6 @@ class XOPackager(Packager):
 
         bundle_zip.close()
 
-    def _get_files_in_git(self):
-        git_ls = subprocess.Popen(['git', 'ls-files'], stdout=subprocess.PIPE,
-                                  cwd=self.config.source_dir)
-        stdout, _ = git_ls.communicate()
-        if git_ls.returncode:
-            # Fall back to filtered list
-            return list_files(self.config.source_dir,
-                              IGNORE_DIRS, IGNORE_FILES)
-
-        # pylint: disable=E1103
-        return [path.strip() for path in stdout.strip('\n').split('\n')]
-
 
 class SourcePackager(Packager):
 
@@ -202,21 +202,9 @@ class SourcePackager(Packager):
         self.package_path = os.path.join(self.config.dist_dir,
                                          self.config.tar_name)
 
-    def get_files(self):
-        git_ls = subprocess.Popen(['git', 'ls-files'], stdout=subprocess.PIPE,
-                                  cwd=self.config.source_dir)
-        stdout, _ = git_ls.communicate()
-        if git_ls.returncode:
-            # Fall back to filtered list
-            return list_files(self.config.source_dir,
-                              IGNORE_DIRS, IGNORE_FILES)
-
-        # pylint: disable=E1103
-        return [path.strip() for path in stdout.strip('\n').split('\n')]
-
     def package(self):
         tar = tarfile.open(self.package_path, 'w:bz2')
-        for f in self.get_files():
+        for f in self.get_files_in_git():
             tar.add(os.path.join(self.config.source_dir, f),
                     os.path.join(self.config.tar_root_dir, f))
         tar.close()
-- 
1.7.4.4



More information about the Sugar-devel mailing list