| Index: tools/mac_build_editor_dmg.sh
|
| diff --git a/tools/mac_build_editor_dmg.sh b/tools/mac_build_editor_dmg.sh
|
| deleted file mode 100755
|
| index 15b70e124ec0c208f2a6d78574786247827ba8f8..0000000000000000000000000000000000000000
|
| --- a/tools/mac_build_editor_dmg.sh
|
| +++ /dev/null
|
| @@ -1,131 +0,0 @@
|
| -#!/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.
|
| -
|
| -# This is partly based on
|
| -# https://bitbucket.org/rmacnak/nsvm/src/
|
| -# b2de52432a2baff9c4ada099430fb16a771d34ef/vm/onebuild/installer-Darwin.gmk
|
| -
|
| -# Fail if a command failed
|
| -set -e
|
| -set -o errexit
|
| -set -o nounset
|
| -
|
| -if [ $# -ne 4 ]; then
|
| - echo "Usage $0 <output.dmg> <raw-editor-bundle> <folder-icon> <volume-name>"
|
| - exit 1
|
| -fi
|
| -
|
| -OUTPUT_DMG_FILE=$1
|
| -INPUT_FOLDER_PATH=$2
|
| -FOLDER_ICON=$3
|
| -INPUT_VOLUME_NAME=$4
|
| -
|
| -FOLDER_NAME="Dart"
|
| -VOLUME_MOUNTPOINT="/Volumes/$INPUT_VOLUME_NAME"
|
| -SPARSEIMAGE="$OUTPUT_DMG_FILE.sparseimage"
|
| -
|
| -# Input validations
|
| -if [ ! -d "$INPUT_FOLDER_PATH" ]; then
|
| - echo "Editor bundle folder does not exist ($INPUT_FOLDER_PATH)"
|
| - exit 1
|
| -fi
|
| -
|
| -# If an old image is still mounted, umount it
|
| -if [ -e "$VOLUME_MOUNTPOINT" ]; then
|
| - hdiutil eject "$VOLUME_MOUNTPOINT"
|
| -fi
|
| -
|
| -# Remove old output files
|
| -if [ -f "$SPARSEIMAGE" ]; then
|
| - rm "$SPARSEIMAGE"
|
| -fi
|
| -if [ -f "$OUTPUT_DMG_FILE" ]; then
|
| - rm "$OUTPUT_DMG_FILE"
|
| -fi
|
| -
|
| -# This function will set (or replace) the icon of a folder.
|
| -# Finder displays a default folder icon. Since the installer
|
| -# will consist of a folder and a link to "/Applications", we want
|
| -# the folder to have a nice icon.
|
| -# In order to make Finder display a custom icon, we need to
|
| -# - Have a "FOLDER/Icon\r" file which contains the icon resource
|
| -# (i.e. the metadata of this file will contain an icon)
|
| -# - Have the 'custom icon' attribute set on "FOLDER"
|
| -# Additionally we mark the "FOLDER/Icon\r" file as invisible, so it
|
| -# is not shown in Finder (although it's visible on the commandline).
|
| -replace_folder_icon() {
|
| - FOLDER="$1"
|
| - ICON="$2"
|
| - TEMP_ICON_RESOURCE='/tmp/icns.rsrc'
|
| - ICON_RESOURCE="$FOLDER"/$'Icon\r'
|
| -
|
| - # Add finder icon to the image file
|
| - sips -i "$ICON" > /dev/null
|
| -
|
| - # Extract the finder icon resource
|
| - DeRez -only icns "$ICON" > "$TEMP_ICON_RESOURCE"
|
| -
|
| - # Create the icon resource
|
| - rm -f "$ICON_RESOURCE"
|
| - Rez -append "$TEMP_ICON_RESOURCE" -o "$ICON_RESOURCE"
|
| - rm "$TEMP_ICON_RESOURCE"
|
| -
|
| - # Set the 'custom icon' attribute on $FOLDER
|
| - SetFile -a C "$FOLDER"
|
| -
|
| - # Make the $ICON_RESOURCE invisible for finder
|
| - SetFile -a V "$ICON_RESOURCE"
|
| -}
|
| -
|
| -
|
| -# Create a new image and attach it
|
| -hdiutil create -size 400m -type SPARSE -volname "$INPUT_VOLUME_NAME" -fs \
|
| - 'Journaled HFS+' "$SPARSEIMAGE"
|
| -hdiutil attach "$SPARSEIMAGE"
|
| -
|
| -# Add link to /Applications (so the user can drag-and-drop into it)
|
| -ln -s /Applications "$VOLUME_MOUNTPOINT/"
|
| -# Copy our application
|
| -ditto "$INPUT_FOLDER_PATH" "$VOLUME_MOUNTPOINT/$FOLDER_NAME"
|
| -# Set custom icon on this folder
|
| -replace_folder_icon "$VOLUME_MOUNTPOINT/$FOLDER_NAME" "$FOLDER_ICON"
|
| -# Make sure that the dmg gets opened when mounting the image
|
| -bless --folder "$VOLUME_MOUNTPOINT" --openfolder "$VOLUME_MOUNTPOINT"
|
| -
|
| -# Use an applescript to setup the layout of the folder.
|
| -osascript << EOF
|
| -tell application "Finder"
|
| - tell disk "$INPUT_VOLUME_NAME"
|
| - open
|
| - tell container window
|
| - set current view to icon view
|
| - set toolbar visible to false
|
| - set statusbar visible to false
|
| - set position to {100, 100}
|
| - set bounds to {100, 100, 512, 256}
|
| - end tell
|
| - tell icon view options of container window
|
| - set arrangement to not arranged
|
| - set icon size to 128
|
| - end tell
|
| - set position of item "$FOLDER_NAME" to {64, 64}
|
| - set position of item "Applications" to {320, 64}
|
| - eject
|
| - end tell
|
| -end tell
|
| -EOF
|
| -
|
| -# Wait until the script above has umounted the image
|
| -while [ -e "$VOLUME_MOUNTPOINT" ]; do
|
| - echo "Waiting for Finder to eject $VOLUME_MOUNTPOINT"
|
| - sleep 2
|
| -done
|
| -
|
| -# Compress the sparse image
|
| -hdiutil convert "$SPARSEIMAGE" -format UDBZ -o "$OUTPUT_DMG_FILE"
|
| -
|
| -# Remove sparse image
|
| -rm "$SPARSEIMAGE"
|
| -
|
|
|