bundlebuilder: refactor get_files_git to Packager to avoid code duplication

Follow up patch for b582736375

Signed-off-by: Simon Schampijer <simon@laptop.org>
Reviewed-by: Daniel Drake <dsd@laptop.org>
Acked-by: Sascha Silbe <silbe@activitycentral.com>
This commit is contained in:
Simon Schampijer 2011-09-19 19:10:30 +02:00
parent 29a700b34a
commit 37568a0a7e

View File

@ -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):
@ -171,7 +183,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')
@ -183,18 +195,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):
@ -203,21 +203,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()