From 6286d3742947f967fbf977fdccb90a50c52c805f Mon Sep 17 00:00:00 2001 From: Gustavo Maximiliano Cortez Date: Thu, 1 Oct 2015 17:05:28 -0300 Subject: [PATCH] OSX: Drag to install Copay on Applications --- .gitignore | 2 + Gruntfile.js | 4 +- webkitbuilds/Background.png | Bin 0 -> 28915 bytes webkitbuilds/build-osx.sh | 124 ++++++++++++++++++++++++++++++++++++ 4 files changed, 128 insertions(+), 2 deletions(-) create mode 100755 webkitbuilds/Background.png create mode 100755 webkitbuilds/build-osx.sh diff --git a/.gitignore b/.gitignore index 762a6d9e9..65510bc38 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,8 @@ webkitbuilds/* !webkitbuilds/setup-win64.iss !webkitbuilds/favicon.ico !webkitbuilds/.desktop +!webkitbuilds/build-osx.sh +!webkitbuilds/Background.png # chrome extensions browser-extensions/chrome/copay-chrome-extension diff --git a/Gruntfile.js b/Gruntfile.js index 98e6ef651..4b4533a27 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -11,10 +11,10 @@ module.exports = function(grunt) { command: 'rm -Rf bower_components node_modules' }, osx64: { - command: 'hdiutil create -megabytes 150 -volname Copay -srcfolder webkitbuilds/copay/osx64/copay.app/ -ov -format UDZO webkitbuilds/copay-osx64.dmg' + command: 'webkitbuilds/build-osx.sh osx64' }, osx32: { - command: 'hdiutil create -megabytes 150 -volname Copay -srcfolder webkitbuilds/copay/osx32/copay.app/ -ov -format UDZO webkitbuilds/copay-osx32.dmg' + command: 'webkitbuilds/build-osx.sh osx32' } }, watch: { diff --git a/webkitbuilds/Background.png b/webkitbuilds/Background.png new file mode 100755 index 0000000000000000000000000000000000000000..7cdaf6ed97789d67c1101ba8a17b0e6dd0118e56 GIT binary patch literal 28915 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 YYE^RY%d!%s7l43|iGi7ZC5}M;KWnF`DgXcg literal 0 HcmV?d00001 diff --git a/webkitbuilds/build-osx.sh b/webkitbuilds/build-osx.sh new file mode 100755 index 000000000..6f3edfc42 --- /dev/null +++ b/webkitbuilds/build-osx.sh @@ -0,0 +1,124 @@ +#!/bin/bash + +# by Andy Maloney +# http://asmaloney.com/2013/07/howto/packaging-a-mac-os-x-application-using-a-dmg/ + +# make sure we are in the correct dir when we double-click a .command file +dir=${0%/*} +if [ -d "$dir" ]; then + cd "$dir" +fi + +# set up your app name, architecture, and background image file name +APP_NAME="copay" +ARCH="$1" +DMG_BACKGROUND_IMG="Background.png" + +PATH_NAME="copay/$1/" +# you should not need to change these +APP_EXE="${PATH_NAME}${APP_NAME}.app/Contents/MacOS/nwjs" + +VOL_NAME="${APP_NAME}-${ARCH}" +DMG_TMP="${VOL_NAME}-temp.dmg" +DMG_FINAL="${VOL_NAME}.dmg" +STAGING_DIR="tmp" + +# Check the background image DPI and convert it if it isn't 72x72 +_BACKGROUND_IMAGE_DPI_H=`sips -g dpiHeight ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'` +_BACKGROUND_IMAGE_DPI_W=`sips -g dpiWidth ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'` + +if [ $(echo " $_BACKGROUND_IMAGE_DPI_H != 72.0 " | bc) -eq 1 -o $(echo " $_BACKGROUND_IMAGE_DPI_W != 72.0 " | bc) -eq 1 ]; then + echo "WARNING: The background image's DPI is not 72. This will result in distorted backgrounds on Mac OS X 10.7+." + echo " I will convert it to 72 DPI for you." + + _DMG_BACKGROUND_TMP="${DMG_BACKGROUND_IMG%.*}"_dpifix."${DMG_BACKGROUND_IMG##*.}" + + sips -s dpiWidth 72 -s dpiHeight 72 ${DMG_BACKGROUND_IMG} --out ${_DMG_BACKGROUND_TMP} + + DMG_BACKGROUND_IMG="${_DMG_BACKGROUND_TMP}" +fi + +# clear out any old data +rm -rf "${STAGING_DIR}" "${DMG_TMP}" "${DMG_FINAL}" + +# copy over the stuff we want in the final disk image to our staging dir +mkdir -p "${STAGING_DIR}" +cp -rpf "${PATH_NAME}${APP_NAME}.app" "${STAGING_DIR}" +# ... cp anything else you want in the DMG - documentation, etc. + +pushd "${STAGING_DIR}" + +popd + +# figure out how big our DMG needs to be +# assumes our contents are at least 1M! +SIZE=`du -sh "${STAGING_DIR}" | sed 's/\([0-9\.]*\)M\(.*\)/\1/'` +SIZE=`echo "${SIZE} + 1.0" | bc | awk '{print int($1+0.5)}'` + +if [ $? -ne 0 ]; then + echo "Error: Cannot compute size of staging dir" + exit +fi + +# create the temp DMG file +hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ \ + -fsargs "-c c=64,a=16,e=16" -format UDRW -size ${SIZE}M "${DMG_TMP}" + +echo "Created DMG: ${DMG_TMP}" + +# mount it and save the device +DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \ + egrep '^/dev/' | sed 1q | awk '{print $1}') + +sleep 2 + +# add a link to the Applications dir +echo "Add link to /Applications" +pushd /Volumes/"${VOL_NAME}" +ln -s /Applications +popd + +# add a background image +mkdir /Volumes/"${VOL_NAME}"/.background +cp "${DMG_BACKGROUND_IMG}" /Volumes/"${VOL_NAME}"/.background/ + +# tell the Finder to resize the window, set the background, +# change the icon size, place the icons in the right position, etc. +echo ' + tell application "Finder" + tell disk "'${VOL_NAME}'" + open + set current view of container window to icon view + set toolbar visible of container window to false + set statusbar visible of container window to false + set the bounds of container window to {400, 100, 920, 440} + set viewOptions to the icon view options of container window + set arrangement of viewOptions to not arranged + set icon size of viewOptions to 72 + set background picture of viewOptions to file ".background:'${DMG_BACKGROUND_IMG}'" + set position of item "'${APP_NAME}'.app" of container window to {160, 205} + set position of item "Applications" of container window to {360, 205} + close + open + update without registering applications + delay 2 + end tell + end tell +' | osascript + +sync + +# unmount it +hdiutil detach "${DEVICE}" + +# now make the final image a compressed disk image +echo "Creating compressed image" +hdiutil convert "${DMG_TMP}" -format UDZO -imagekey zlib-level=9 -o "${DMG_FINAL}" + +# clean up +rm -rf "${DMG_TMP}" +rm -rf "${STAGING_DIR}" + +echo 'Done.' + +exit