Files
UnrealEngineUWP/Engine/Build/BatchFiles/Mac/CreateDMG.sh
Carlos Cuello 6f1ac76399 [INTEGRATE] UE4-LauncherDev->UE4 integrate all up to cl 2475889
[CL 2478426 by Carlos Cuello in Main branch]
2015-03-13 08:26:18 -04:00

86 lines
2.3 KiB
Bash
Executable File

#/bin/sh
APP_PATH=$(cd "$1" > /dev/null; pwd)
APP_SIZE=$(expr $(du -sm "$APP_PATH" | awk '{print $1}') + 500)
APP_NAME=$(basename "$APP_PATH")
DMG_PATH=$2
DMG_TEMP_PATH="${DMG_PATH}.temp.dmg"
VOLUME_NAME=$3
MOUNT_DIR="/Volumes/$VOLUME_NAME"
BACKGROUND_FILE_PATH=$4
BACKGROUND_FILE_NAME=$(basename "$BACKGROUND_FILE_PATH")
VOLUME_ICON_PATH=$5
# Create and mount the image
test -d "$MOUNT_DIR" && hdiutil detach "$MOUNT_DIR" > /dev/null
test -f "$DMG_TEMP_PATH" && rm -f "$DMG_TEMP_PATH"
hdiutil create -srcfolder "$APP_PATH" -volname "$VOLUME_NAME" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size ${APP_SIZE}m "$DMG_TEMP_PATH" > /dev/null
hdiutil attach -readwrite -noverify -noautoopen "$DMG_TEMP_PATH" > /dev/null
# Create /Applications link
ln -s /Applications "$MOUNT_DIR/Applications"
# Copy background image
mkdir -p "$MOUNT_DIR/.background"
cp "$BACKGROUND_FILE_PATH" "$MOUNT_DIR/.background/$BACKGROUND_FILE_NAME"
# Set volume icon - @todo: requires sudo
#cp "$VOLUME_ICON_PATH" "$MOUNT_DIR/.VolumeIcon.icns"
#SetFile -c icnC "$MOUNT_DIR/.VolumeIcon.icns"
#SetFile -a C "$MOUNT_DIR"
# Setup image window look
echo '
tell application "Finder"
tell disk "'$VOLUME_NAME'"
open
delay 8
tell container window
set current view to icon view
set toolbar visible to false
set statusbar visible to false
set the bounds to {200, 200, 840, 575}
end tell
delay 8
set Options to the icon view options of container window
tell Options
set icon size to 128
set arrangement to not arranged
end tell
set background picture of Options to file ".background:'$BACKGROUND_FILE_NAME'"
delay 8
set position of item "'$APP_NAME'" of container window to {170, 220}
set position of item "Applications" of container window to {485, 220}
delay 8
update without registering applications
delay 8
close
end tell
end tell
' | osascript
# Make the volume contents read-only - @todo: requires sudo
#chmod -Rf go-w "$MOUNT_DIR" > /dev/null
# Make the image open its window in Finder on mount
bless --folder "$MOUNT_DIR" --openfolder "$MOUNT_DIR"
# Unmount the image
hdiutil detach "$MOUNT_DIR" > /dev/null
# Compress the image
test -f "$DMG_PATH" && rm -f "$DMG_PATH"
hdiutil convert "$DMG_TEMP_PATH" -format UDZO -imagekey zlib-level=9 -o "$DMG_PATH" > /dev/null
rm -f "$DMG_TEMP_PATH"
exit $?