mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-21 03:06:34 +01:00
85 lines
2.8 KiB
Bash
Executable File
85 lines
2.8 KiB
Bash
Executable File
#!/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"
|