113 lines
3.5 KiB
Bash
Executable File
113 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
APP_NAME=lammps-gui
|
|
VERSION="$1"
|
|
|
|
echo "Delete old files, if they exist"
|
|
rm -f ${APP_NAME}.dmg ${APP_NAME}-rw.dmg LAMMPS_GUI-macOS-multiarch*.dmg
|
|
|
|
echo "Create initial dmg file with macdeployqt"
|
|
macdeployqt lammps-gui.app -dmg
|
|
echo "Create writable dmg file"
|
|
hdiutil convert ${APP_NAME}.dmg -format UDRW -o ${APP_NAME}-rw.dmg
|
|
|
|
echo "Mount writeable DMG file in read-write mode. Keep track of device and volume names"
|
|
DEVICE=$(hdiutil attach -readwrite -noverify ${APP_NAME}-rw.dmg | grep '^/dev/' | sed 1q | awk '{print $1}')
|
|
VOLUME=$(df | grep ${DEVICE} | sed -e 's/^.*\(\/Volumes\/\)/\1/')
|
|
sleep 2
|
|
|
|
echo "Create link to Application folder and move README and background image files"
|
|
|
|
pushd "${VOLUME}"
|
|
ln -s /Applications .
|
|
mv ${APP_NAME}.app/Contents/Resources/README.txt .
|
|
mkdir .background
|
|
mv ${APP_NAME}.app/Contents/Resources/LAMMPS_DMG_Background.png .background/background.png
|
|
mv ${APP_NAME}.app LAMMPS_GUI.app
|
|
cd LAMMPS_GUI.app/Contents
|
|
|
|
echo "Attach icons to LAMMPS console and GUI executables"
|
|
echo "read 'icns' (-16455) \"Resources/lammps.icns\";" > icon.rsrc
|
|
Rez -a icon.rsrc -o bin/lmp
|
|
SetFile -a C bin/lmp
|
|
Rez -a icon.rsrc -o MacOS/lammps-gui
|
|
SetFile -a C MacOS/lammps-gui
|
|
rm icon.rsrc
|
|
popd
|
|
|
|
echo 'Tell the Finder to resize the window, set the background,'
|
|
echo 'change the icon size, place the icons in the right position, etc.'
|
|
echo '
|
|
tell application "Finder"
|
|
tell disk "'${APP_NAME}'"
|
|
|
|
-- wait for the image to finish mounting
|
|
set open_attempts to 0
|
|
repeat while open_attempts < 4
|
|
try
|
|
open
|
|
delay 1
|
|
set open_attempts to 5
|
|
close
|
|
on error errStr number errorNumber
|
|
set open_attempts to open_attempts + 1
|
|
delay 10
|
|
end try
|
|
end repeat
|
|
delay 5
|
|
|
|
-- open the image the first time and save a .DS_Store
|
|
-- just the background and icon setup
|
|
open
|
|
set current view of container window to icon view
|
|
set theViewOptions to the icon view options of container window
|
|
set background picture of theViewOptions to file ".background:background.png"
|
|
set arrangement of theViewOptions to not arranged
|
|
set icon size of theViewOptions to 64
|
|
delay 5
|
|
close
|
|
|
|
-- next set up the position of the app and Applications symlink
|
|
-- plus hide all window decorations
|
|
open
|
|
update without registering applications
|
|
tell container window
|
|
set sidebar width to 0
|
|
set statusbar visible to false
|
|
set toolbar visible to false
|
|
set the bounds to { 100, 40, 868, 640 }
|
|
set position of item "'LAMMPS_GUI'.app" to { 190, 216 }
|
|
set position of item "Applications" to { 576, 216 }
|
|
set position of item "README.txt" to { 190, 400 }
|
|
end tell
|
|
update without registering applications
|
|
delay 5
|
|
close
|
|
|
|
-- one last open and close to check the results
|
|
open
|
|
delay 5
|
|
close
|
|
end tell
|
|
delay 1
|
|
end tell
|
|
' | osascript
|
|
|
|
sync
|
|
|
|
echo "Unmount modified disk image and convert to compressed read-only image"
|
|
hdiutil detach "${DEVICE}"
|
|
hdiutil convert "${APP_NAME}-rw.dmg" -format UDZO -o "LAMMPS_GUI-macOS-multiarch-${VERSION}.dmg"
|
|
|
|
echo "Attach icon to .dmg file"
|
|
echo "read 'icns' (-16455) \"lammps-gui.app/Contents/Resources/lammps.icns\";" > icon.rsrc
|
|
Rez -a icon.rsrc -o LAMMPS_GUI-macOS-multiarch-${VERSION}.dmg
|
|
SetFile -a C LAMMPS_GUI-macOS-multiarch-${VERSION}.dmg
|
|
rm icon.rsrc
|
|
|
|
echo "Delete temporary disk images"
|
|
rm -f "${APP_NAME}-rw.dmg"
|
|
rm -f "${APP_NAME}.dmg"
|
|
|
|
exit 0
|