You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.8 KiB
84 lines
2.8 KiB
#!/bin/bash |
|
|
|
TMP=/tmp |
|
BUNDLE_PATH=bin |
|
test -d bin || BUNDLE_PATH=../bin |
|
|
|
WORK_TEMPLATE=tmp-Falkon-release.dmg.sparseimage |
|
|
|
# NOTE: Value must currently match -volname exactly or an error happens in AppleScript with Finder |
|
VOLUME_TEMPLATE=Falkon |
|
|
|
echo "Ensuring working disk image template is not in use…" |
|
hdiutil detach "$TMP/$WORK_TEMPLATE" |
|
|
|
echo "Creating writable working disk image template…" |
|
hdiutil create -size 200m "$TMP/$WORK_TEMPLATE" -type SPARSE -fs HFS+ -volname "Falkon" |
|
|
|
echo "Attaching working disk image template for modification…" |
|
hdiutil attach "$TMP/$WORK_TEMPLATE" -mountpoint "$TMP/$VOLUME_TEMPLATE" |
|
|
|
echo "Creating background image folder…" |
|
mkdir "$TMP/$VOLUME_TEMPLATE/.background" |
|
|
|
echo "Copying background image…" |
|
cp dmg-background.png "$TMP/$VOLUME_TEMPLATE/.background/" |
|
|
|
echo "Creating volume icon set…" |
|
ICON=dmg-icon |
|
ICONEXT=png |
|
ICONSETDIR=$ICON.iconset |
|
|
|
mkdir -p "$ICONSETDIR" |
|
|
|
# Convert last with qlmanage since sips does not do SVG |
|
qlmanage -t -s 1024 -o "$ICONSETDIR" "$ICON.$ICONEXT" |
|
mv "$ICONSETDIR/$ICON.$ICONEXT.png" "$ICONSETDIR/icon_512x512@2x.png" |
|
|
|
# Convert remaining with sips since qlmanage does not do 16 pixels |
|
sizes=( 512 256 128 64 32 16 ) |
|
for size in ${sizes[@]} |
|
do |
|
sips -Z $size -s format png "$ICONSETDIR/icon_512x512@2x.png" --out "$ICONSETDIR/icon_${size}x${size}.png" |
|
|
|
halfsize=$((size / 2)) |
|
if [[ size -ne 16 ]]; then |
|
ln "$ICONSETDIR/icon_${size}x${size}.png" "$ICONSETDIR/icon_${halfsize}x${halfsize}@2x.png" |
|
fi |
|
done |
|
|
|
echo "Creating application reference folder…" |
|
mkdir "$TMP/$VOLUME_TEMPLATE/Falkon.app" |
|
|
|
echo "Creating symbolic link to global Applications folder…" |
|
ln -s /Applications "$TMP/$VOLUME_TEMPLATE/Applications" |
|
|
|
echo "Setting some proprietary window modifications here with AppleScript…" |
|
osascript create_dmg.scpt |
|
|
|
sleep 5 |
|
|
|
echo "Registering that a custom icon is being set…" |
|
# iconutil will only pick what it needs |
|
iconutil -c icns "$ICONSETDIR" -o "$TMP/$VOLUME_TEMPLATE/.VolumeIcon.icns" |
|
SetFile -a C "$TMP/$VOLUME_TEMPLATE" |
|
|
|
echo "Copying application bundle contents…" |
|
cp -fpR "$BUNDLE_PATH/Falkon.app/Contents" "$TMP/$VOLUME_TEMPLATE/Falkon.app" |
|
|
|
echo "Blessing folder to automatically open on mount…" |
|
bless --folder "$TMP/$VOLUME_TEMPLATE" --openfolder "$TMP/$VOLUME_TEMPLATE" |
|
|
|
echo "Detaching working disk image template from write…" |
|
hdiutil detach "$TMP/$VOLUME_TEMPLATE" |
|
|
|
echo "Compacting working disk image…" |
|
hdiutil compact "$TMP/$WORK_TEMPLATE" |
|
|
|
echo "Converting working disk image to read only…" |
|
rm "$BUNDLE_PATH/Falkon.dmg" |
|
hdiutil convert "$TMP/$WORK_TEMPLATE" -format UDBZ -o "$BUNDLE_PATH/Falkon.dmg" |
|
|
|
echo "Cleaning up" |
|
rm -Rf "$ICONSETDIR" |
|
rm "$TMP/$WORK_TEMPLATE"
|
|
|