summaryrefslogtreecommitdiffstats
path: root/build/package
diff options
context:
space:
mode:
Diffstat (limited to 'build/package')
-rwxr-xr-xbuild/package/mac_osx/make-diskimage47
-rw-r--r--build/package/mac_osx/mozilla-background.jpgbin0 -> 16591 bytes
-rw-r--r--build/package/mac_osx/mozilla.dsstorebin0 -> 6148 bytes
-rwxr-xr-xbuild/package/mac_osx/unpack-diskimage54
4 files changed, 101 insertions, 0 deletions
diff --git a/build/package/mac_osx/make-diskimage b/build/package/mac_osx/make-diskimage
new file mode 100755
index 000000000..c214ceb59
--- /dev/null
+++ b/build/package/mac_osx/make-diskimage
@@ -0,0 +1,47 @@
+#!/bin/sh
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Create a read-only disk image of the contents of a folder
+#
+# Usage: make-diskimage <image_file>
+# <src_folder>
+# <volume_name>
+# <eula_resource_file>
+# <.dsstore_file>
+# <background_image_file>
+#
+# tip: use '-null-' for <eula-resource-file> if you only want to
+# provide <.dsstore_file> and <background_image_file>
+
+DMG_PATH=$1
+SRC_FOLDER=$2
+VOLUME_NAME=$3
+
+# optional arguments
+EULA_RSRC=$4
+DMG_DSSTORE=$5
+DMG_BKGND_IMG=$6
+
+EXTRA_ARGS=
+
+if test -n "$EULA_RSRC" && test "$EULA_RSRC" != "-null-" ; then
+ EXTRA_ARGS="--resource $EULA_RSRC"
+fi
+
+if test -n "$DMG_DSSTORE" ; then
+ EXTRA_ARGS="$EXTRA_ARGS --copy $DMG_DSSTORE:/.DS_Store"
+fi
+
+if test -n "$DMG_BKGND_IMG" ; then
+ EXTRA_ARGS="$EXTRA_ARGS --mkdir /.background --copy $DMG_BKGND_IMG:/.background"
+fi
+
+echo `dirname $0`/pkg-dmg --target "$DMG_PATH" --source "$SRC_FOLDER" \
+ --volname "$VOLUME_NAME" $EXTRA_ARGS
+
+`dirname $0`/pkg-dmg --target "$DMG_PATH" --source "$SRC_FOLDER" \
+ --volname "$VOLUME_NAME" $EXTRA_ARGS
+
+exit $?
diff --git a/build/package/mac_osx/mozilla-background.jpg b/build/package/mac_osx/mozilla-background.jpg
new file mode 100644
index 000000000..adb4df036
--- /dev/null
+++ b/build/package/mac_osx/mozilla-background.jpg
Binary files differ
diff --git a/build/package/mac_osx/mozilla.dsstore b/build/package/mac_osx/mozilla.dsstore
new file mode 100644
index 000000000..520eb08d6
--- /dev/null
+++ b/build/package/mac_osx/mozilla.dsstore
Binary files differ
diff --git a/build/package/mac_osx/unpack-diskimage b/build/package/mac_osx/unpack-diskimage
new file mode 100755
index 000000000..3ba977805
--- /dev/null
+++ b/build/package/mac_osx/unpack-diskimage
@@ -0,0 +1,54 @@
+#!/bin/bash
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Unpack a disk image to a specified target folder
+#
+# Usage: unpack-diskimage <image_file>
+# <mountpoint>
+# <target_path>
+
+DMG_PATH=$1
+MOUNTPOINT=$2
+TARGETPATH=$3
+
+# How long to wait before giving up waiting for the mount to finish (seconds)
+TIMEOUT=90
+
+# If mnt already exists, then the previous run may not have cleaned up
+# properly. We should try to umount and remove the mnt directory.
+if [ -d $MOUNTPOINT ]; then
+ echo "mnt already exists, trying to clean up"
+ hdiutil detach $MOUNTPOINT -force
+ rm -rdfv $MOUNTPOINT
+fi
+
+# Install an on-exit handler that will unmount and remove the '$MOUNTPOINT' directory
+trap "{ if [ -d $MOUNTPOINT ]; then hdiutil detach $MOUNTPOINT -force; rm -rdfv $MOUNTPOINT; fi; }" EXIT
+
+mkdir -p $MOUNTPOINT
+
+hdiutil attach -verbose -noautoopen -mountpoint $MOUNTPOINT "$DMG_PATH"
+# Wait for files to show up
+# hdiutil uses a helper process, diskimages-helper, which isn't always done its
+# work by the time hdiutil exits. So we wait until something shows up in the
+# mnt directory. Due to the async nature of diskimages-helper, the best thing
+# we can do is to make sure the glob() rsync is making can find files.
+i=0
+while [ "$(echo $MOUNTPOINT/*)" == "$MOUNTPOINT/*" ]; do
+ if [ $i -gt $TIMEOUT ]; then
+ echo "No files found, exiting"
+ exit 1
+ fi
+ sleep 1
+ i=$(expr $i + 1)
+done
+# Now we can copy everything out of the $MOUNTPOINT directory into the target directory
+rsync -av $MOUNTPOINT/* $MOUNTPOINT/.DS_Store $MOUNTPOINT/.background $MOUNTPOINT/.VolumeIcon.icns $TARGETPATH/.
+hdiutil detach $MOUNTPOINT
+rm -rdf $MOUNTPOINT
+# diskimage-helper prints messages to stdout asynchronously as well, sleep
+# for a bit to ensure they don't disturb following commands in a script that
+# might parse stdout messages
+sleep 5