summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndoni Morales Alastruey <ylatuya@gmail.com>2013-06-05 19:10:38 +0200
committerAndoni Morales Alastruey <ylatuya@gmail.com>2013-06-05 19:12:20 +0200
commit57cb0ae6a83d53a9d348b8473170a181807966c3 (patch)
treeff45e6d585a6ccdc1fe8ae01da3a4edc38570582
parent7d98cfa50b6f1913251d3376212aa9d5b2827a88 (diff)
ios: add support for shipping resource in the final package
When user resources are needed the final installer package is dmg with the pkg file and the folders listed as user resources
-rw-r--r--cerbero/packages/osx/packager.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/cerbero/packages/osx/packager.py b/cerbero/packages/osx/packager.py
index e2bedb8..6eff9ae 100644
--- a/cerbero/packages/osx/packager.py
+++ b/cerbero/packages/osx/packager.py
@@ -421,6 +421,7 @@ class IOSPackage(ProductPackage, FrameworkHeadersMixin):
'''
home_folder = True
+ user_resources = []
def pack(self, output_dir, devel=False, force=False, keep_temp=False):
PackagerBase.pack(self, output_dir, devel, force, keep_temp)
@@ -449,6 +450,8 @@ class IOSPackage(ProductPackage, FrameworkHeadersMixin):
self._create_framework_bundle_package(packager)
paths = [self._create_product(PackageType.DEVEL)]
+ if self.package.user_resources:
+ paths = [self._create_dmg (paths[0])]
if not keep_temp:
shutil.rmtree(self.tmp)
return paths
@@ -504,6 +507,22 @@ class IOSPackage(ProductPackage, FrameworkHeadersMixin):
return '%s-%s-%s-%s%s' % (self.package.name, self.package.version,
self.config.target_platform, self.config.target_arch, suffix)
+ def _create_dmg(self, pkg_path):
+ dmg_file = pkg_path.replace('.pkg', '.dmg')
+ # Create a new folder with the pkg and the user resources
+ dmg_dir = os.path.join(self.tmp, 'dmg')
+ os.makedirs(dmg_dir)
+ for r in self.package.user_resources:
+ r = os.path.join(self.config.prefix, r)
+ r_dir = os.path.split(r)[1]
+ shell.copy_dir (r, os.path.join(dmg_dir, r_dir))
+ shutil.move(pkg_path, dmg_dir)
+
+ # Create Disk Image
+ cmd = 'hdiutil create %s -volname %s -ov -srcfolder %s' % \
+ (dmg_file, self.package.name, dmg_dir)
+ shell.call(cmd)
+ return dmg_file
class Packager(object):