0d8293ef34
R=devoncarew@google.com, ricow@google.com Review URL: https://codereview.chromium.org//16831019 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24271 260f80e4-7a28-3924-810f-c04153c831b5
122 lines
3.9 KiB
Bash
Executable File
122 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
|
|
# Fail if a command failed
|
|
set -e
|
|
|
|
if [ $# -ne 5 ]; then
|
|
echo "Usage $0 <app-folder> <editor-build-directory> <dart-sdk> " \
|
|
"<Chromium.app> <icon.icns>"
|
|
exit 1
|
|
fi
|
|
|
|
OUTPUT_APP_FOLDER=$1
|
|
INPUT_EDITOR_BUILD_DIRECTORY=$2
|
|
INPUT_DART_SDK_DIRECTORY=$3
|
|
INPUT_CHROMIUM_APP_DIRECTORY=$4
|
|
INPUT_ICON_PATH=$5
|
|
|
|
# Input validations
|
|
if [ "${OUTPUT_APP_FOLDER##*.}" != "app" ]; then
|
|
echo "Application folder has to end in '.app' " \
|
|
"(but was $APP_FOLDER_NAME)."
|
|
exit 1
|
|
fi
|
|
if [ "${INPUT_ICON_PATH##*.}" != "icns" ]; then
|
|
echo "Application icon has to end in '.icns'."
|
|
exit 1
|
|
fi
|
|
|
|
function ensure_exists {
|
|
if [ ! -e "$1" ]; then
|
|
echo "Directory or file does not exist: $1."
|
|
exit 1
|
|
fi
|
|
}
|
|
ensure_exists "$INPUT_EDITOR_BUILD_DIRECTORY"
|
|
ensure_exists "$INPUT_DART_SDK_DIRECTORY"
|
|
|
|
# Remove old directory if present
|
|
if [ -e "$OUTPUT_APP_FOLDER" ]; then
|
|
rm -r "$OUTPUT_APP_FOLDER"
|
|
fi
|
|
|
|
# Make directory structure and copy necessary files
|
|
mkdir -p "$OUTPUT_APP_FOLDER/Contents/MacOS"
|
|
LAUNCHER_SUBPATH="DartEditor.app/Contents/MacOS/DartEditor"
|
|
cp "$INPUT_EDITOR_BUILD_DIRECTORY/$LAUNCHER_SUBPATH" \
|
|
"$OUTPUT_APP_FOLDER/Contents/MacOS/"
|
|
cp "$INPUT_EDITOR_BUILD_DIRECTORY/$LAUNCHER_SUBPATH.ini" \
|
|
"$OUTPUT_APP_FOLDER/Contents/MacOS/"
|
|
mkdir -p "$OUTPUT_APP_FOLDER/Contents/Resources"
|
|
cp "$INPUT_ICON_PATH" "$OUTPUT_APP_FOLDER/Contents/Resources/dart.icns"
|
|
cp -R "$INPUT_DART_SDK_DIRECTORY" \
|
|
"$OUTPUT_APP_FOLDER/Contents/Resources/dart-sdk"
|
|
cp -R "$INPUT_CHROMIUM_APP_DIRECTORY" \
|
|
"$OUTPUT_APP_FOLDER/Contents/Resources/Chromium.app"
|
|
for dirname in $(echo configuration plugins features samples); do
|
|
cp -R "$INPUT_EDITOR_BUILD_DIRECTORY/$dirname" \
|
|
"$OUTPUT_APP_FOLDER/Contents/Resources/"
|
|
done
|
|
|
|
EQUINOX_LAUNCHER_JARFILE=$(cd "$OUTPUT_APP_FOLDER"; \
|
|
ls Contents/Resources/plugins/org.eclipse.equinox.launcher_*.jar);
|
|
|
|
EQUINOX_LAUNCHER_LIBRARY=$(cd "$OUTPUT_APP_FOLDER"; ls \
|
|
Contents/Resources/plugins/org.eclipse.equinox.launcher.cocoa.*/eclipse_*.so);
|
|
|
|
cat > "$OUTPUT_APP_FOLDER/Contents/Info.plist" << EOF
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
|
|
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>NSHighResolutionCapable</key>
|
|
<true/>
|
|
<key>CFBundleExecutable</key>
|
|
<string>DartEditor</string>
|
|
<key>CFBundleGetInfoString</key>
|
|
<string>Eclipse 3.7 for Mac OS X, Copyright IBM Corp. and others 2002,
|
|
2011. All rights reserved.</string>
|
|
<key>CFBundleIconFile</key>
|
|
<string>dart.icns</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>org.eclipse.eclipse</string>
|
|
<key>CFBundleInfoDictionaryVersion</key>
|
|
<string>6.0</string>
|
|
<key>CFBundleName</key>
|
|
<string>DartEditor</string>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>3.7</string>
|
|
<key>CFBundleSignature</key>
|
|
<string>????</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>3.7</string>
|
|
<key>CFBundleDevelopmentRegion</key>
|
|
<string>English</string>
|
|
<key>CFBundleLocalizations</key>
|
|
<array>
|
|
<string>en</string>
|
|
<key>WorkingDirectory</key>
|
|
<string>\$APP_PACKAGE/Contents/Resources</string>
|
|
</array>
|
|
<key>Eclipse</key>
|
|
<array>
|
|
<string>-startup</string>
|
|
<string>\$APP_PACKAGE/$EQUINOX_LAUNCHER_JARFILE</string>
|
|
<string>--launcher.library</string>
|
|
<string>\$APP_PACKAGE/$EQUINOX_LAUNCHER_LIBRARY</string>
|
|
<string>-keyring</string><string>~/.eclipse_keyring</string>
|
|
<string>-showlocation</string>
|
|
<key>WorkingDirectory</key>
|
|
<string>\$APP_PACKAGE/Contents/Resources</string>
|
|
</array>
|
|
</dict>
|
|
</plist>
|
|
EOF
|
|
|