OLD | NEW |
| (Empty) |
1 #!/bin/sh | |
2 | |
3 # Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
4 # Use of this source code is governed by a BSD-style license that can be | |
5 # found in the LICENSE file. | |
6 | |
7 # Packages TestShell up into a disk image, renaming it "Chromium TestShell" | |
8 # so that it's easily identifiable. | |
9 # | |
10 # TODO(mmentovai): This is temporary, as soon as we can package up Chromium | |
11 # proper, we should rip this out and let TestShell live out the rest of its | |
12 # years as a simple test shell. | |
13 | |
14 set -ex | |
15 | |
16 TOP="${SRCROOT}/../../../.." | |
17 PKG_DMG="${TOP}/build/mac/pkg-dmg" | |
18 KEYSTONE_URL="https://tools.google.com/service/update2" | |
19 | |
20 SRC_APP_NAME="TestShell" | |
21 DST_APP_NAME="Chromium TestShell" | |
22 SRC_APP_PATH="${BUILT_PRODUCTS_DIR}/${SRC_APP_NAME}.app" | |
23 | |
24 KSR="${TOP}/third_party/googlemac/Releases/Keystone/KeystoneRegistration.framewo
rk" | |
25 | |
26 # Really, if you want to distribute something, it probably shouldn't be | |
27 # a debug-mode build. Release-mode builds are already stripped and are | |
28 # intended for this sort of thing. | |
29 if [ "${CONFIGURATION}" != "Release" ] ; then | |
30 echo "warning: packaging in non-release mode" >&2 | |
31 fi | |
32 | |
33 # Figure out what version this build corresponds to. Just use the svn revision | |
34 # for now. | |
35 SVN_REVISION=$(svnversion "${TOP}" | sed -e "s/[^0-9]//g") | |
36 if [ -z "${SVN_REVISION}" ] ; then | |
37 echo "warning: could not determine svn revision" >&2 | |
38 fi | |
39 | |
40 # I really hate how "defaults" doesn't take a real pathname but instead insists | |
41 # on appending ".plist" to everything. | |
42 INFO_PLIST_PATH="Contents/Info.plist" | |
43 TMP_INFO_PLIST_DEFAULTS="${TEMP_DIR}/Info" | |
44 TMP_INFO_PLIST="${TMP_INFO_PLIST_DEFAULTS}.plist" | |
45 cp "${SRC_APP_PATH}/${INFO_PLIST_PATH}" "${TMP_INFO_PLIST}" | |
46 | |
47 # Stuff the version information in the Info.plist, and update the CFBundleName | |
48 # to correspond to what we want to call it. | |
49 defaults write "${TMP_INFO_PLIST_DEFAULTS}" CFBundleName "${DST_APP_NAME}" | |
50 defaults write "${TMP_INFO_PLIST_DEFAULTS}" SVNRevision "0.0.${SVN_REVISION}" | |
51 if [ -d "${KSR}" ] ; then | |
52 defaults write "${TMP_INFO_PLIST_DEFAULTS}" KSUpdateURL "${KEYSTONE_URL}" | |
53 fi | |
54 | |
55 # Info.plist will work perfectly well in any plist format, but traditionally | |
56 # applications use xml1 for this, so convert it back after whatever defaults | |
57 # might have done. | |
58 plutil -convert xml1 "${TMP_INFO_PLIST}" | |
59 | |
60 # If the Keystone registration framework is available, stuff it and the | |
61 # Keystone installation script into the application, so that the result will | |
62 # be both auto-updatable and suitable for use as the target of an update. | |
63 PKG_DMG_EXTRA=() | |
64 if [ -d "${KSR}" ] ; then | |
65 PKG_DMG_EXTRA=(--copy "${KSR}:/${DST_APP_NAME}.app/Contents/Frameworks" \ | |
66 --copy "${SRCROOT}/keystone_install.sh:/.keystone_install") | |
67 fi | |
68 | |
69 "${PKG_DMG}" --source /var/empty \ | |
70 --target "${BUILT_PRODUCTS_DIR}/ChromiumTestShell.dmg" \ | |
71 --format UDBZ \ | |
72 --volname "${DST_APP_NAME}" \ | |
73 --tempdir "${TEMP_DIR}" \ | |
74 --copy "${SRC_APP_PATH}/:/${DST_APP_NAME}.app/" \ | |
75 --copy "${TMP_INFO_PLIST}:/${DST_APP_NAME}.app/${INFO_PLIST_PATH}"
\ | |
76 "${PKG_DMG_EXTRA[@]}" | |
OLD | NEW |