Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/sugar/activity/bundlebuilder.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/sugar/activity/bundlebuilder.py b/src/sugar/activity/bundlebuilder.py
index 5fd92c1..8263239 100644
--- a/src/sugar/activity/bundlebuilder.py
+++ b/src/sugar/activity/bundlebuilder.py
@@ -170,12 +170,30 @@ class XOPackager(Packager):
bundle_zip = zipfile.ZipFile(self.package_path, 'w',
zipfile.ZIP_DEFLATED)
- for f in self.builder.get_files():
+ 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')
+ locale_files = list_files(locale_dir, IGNORE_DIRS, IGNORE_FILES)
+ for f in locale_files:
+ bundle_zip.write(os.path.join(locale_dir, f),
+ os.path.join(self.config.bundle_root_dir,
+ 'locale', f))
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):