X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=utils%2Fdev_macos_install.sh;h=7c5fd15b1a3b712d1980adaf9e5b23dd12913471;hb=b96091ff32d202126e5fe30eddb5ad32016f0e1b;hp=c9e219f6a1270c149587541ecd0f7e7cfa693ee2;hpb=b539dd5968fdfa33558497a2360c56273af03db8;p=jalview.git diff --git a/utils/dev_macos_install.sh b/utils/dev_macos_install.sh index c9e219f..7c5fd15 100755 --- a/utils/dev_macos_install.sh +++ b/utils/dev_macos_install.sh @@ -1,31 +1,143 @@ #!/usr/bin/env bash # perform a dev build and install on local macOS machine -INSTALLERVOL="Jalview Installer" -APP=Jalview.app - +APP="" +INSTALLERVOL="" APPLICATIONS=/Applications -CHANNEL=NOCHANNEL -DMG=build/install4j/11/Jalview-OFFLINE_macos-app_DEVELOPMENT-j11.dmg +CHANNEL="LOCAL" +DMG=build/install4j/11/Jalview_Local-TEST-macos-java_11.dmg +GRADLE="" +APPBASEOVERRIDEARG="" +MEDIA=macosArchive +CLEAN="clean" +JAVA=11 +x=$(grep jalview.version= RELEASE) +VERSION=${x#*=} + +while getopts ":i:n:a:c:d:go:m:j:l" opt; do + case ${opt} in + i) + INSTALLERVOL="${OPTARG}" + ;; + n) + APP="${OPTARG}" + ;; + a) + APPLICATIONS="${OPTARG}" + ;; + c) + CHANNEL="${OPTARG}" + ;; + d) + DMG="${OPTARG}" + ;; + g) + GRADLE=1 + ;; + o) + APPBASEOVERRIDEARG="-Pgetdown_appbase_override=${OPTARG}" + ;; + m) + MEDIA="${OPTARG}" + ;; + j) + JAVA="${OPTARG}" + ;; + l) + CLEAN="" + ;; + ?) + echo "Invalid option -${OPTARG}" + exit 1; + ;; + esac +done -gradle installers -Pgetdown_channel_name=NOCHANNEL -Pinstall4jMediaTypes=macosArchive +if [ -z $APP ]; then + ARCH=x64 + if [ $(uname -m) = "arm64" ]; then + ARCH=aarch64 + fi + OS=macos + case $(uname -o) in + Darwin) + OS=macos + ;; + Windows) + OS=windows + ;; + Linux) + OS=linux + ;; + *) + OS=unix + ;; + esac + case ${CHANNEL} in + DEVELOP) + APP="Jalview Develop" + DMG="build/install4j/11/${APP// /_}-${VERSION//\./_}-d$(date +%Y%m%d)-${OS}-${ARCH}-java_${JAVA}.dmg" + ;; + TEST-RELEASE) + APP="Jalview Test" + DMG="build/install4j/11/${APP// /_}-${VERSION//\./_}-test-${OS}-${ARCH}-java_${JAVA}.dmg" + ;; + RELEASE) + APP="Jalview" + DMG="build/install4j/11/${APP// /_}-${VERSION//\./_}-${OS}-${ARCH}-java_${JAVA}.dmg" + ;; + *) + APP="Jalview Local" + DMG=build/install4j/11/${APP// /_}-TEST-macos-java_11.dmg + ;; + esac +fi +if [ -z $INSTALLERVOL ]; then + INSTALLERVOL="${APP} Installer" +fi + +if [ "${GRADLE}" = 1 ]; then + echo "Running: gradle ${CLEAN} installers -PCHANNEL="${CHANNEL}" -Pinstall4j_media_types="${MEDIA}" ${APPBASEOVERRIDEARG} -PJAVA_VERSION=${JAVA}" + gradle ${CLEAN} installers -PCHANNEL="${CHANNEL}" -Pinstall4j_media_types="${MEDIA}" ${APPBASEOVERRIDEARG} -PJAVA_VERSION=${JAVA} +else + echo "Not running gradle installers" +fi if [ $? = 0 ]; then - umount "/Volumes/$INSTALLERVOL" + if [ -e "/Volumes/$INSTALLERVOL" ]; then + hdiutil detach "/Volumes/$INSTALLERVOL" + fi if [ -e "$DMG" ]; then open $DMG else echo "No DMG file '$DMG'" 1>&2 - exit 1 + exit 2 fi echo "Mounting '$DMG' at /Volumes" - while [ \! -e "/Volumes/$INSTALLERVOL/$APP" ]; do + N=0 + MOUNTEDAPP="/Volumes/$INSTALLERVOL/$APP.app" + echo "Waiting for '$MOUNTEDAPP' to appear" + while [ \! -e "$MOUNTEDAPP" ]; do echo -n "." + N=$(( N+1 )) + if [ $N = 40 ]; then + echo "" + echo "Looks like something wrong with the DMG '$DMG'" + exit 4 + fi + sleep 0.1 done echo "" +else + echo "Problem with gradle build: exit code $?" + exit 3 fi -if [ -e "/Volumes/$INSTALLERVOL/$APP" ]; then - /bin/rm -r "$APPLICATIONS/$APP" - rsync -avh "/Volumes/$INSTALLERVOL/$APP" "$APPLICATIONS/" - umount "/Volumes/$INSTALLERVOL" + +if [ -e "$MOUNTEDAPP" ]; then + echo "Removing '$APPLICATIONS/$APP.app'" + /bin/rm -r "$APPLICATIONS/$APP.app" + echo "Syncing '$MOUNTEDAPP' to '$APPLICATIONS/'" + rsync -avh "$MOUNTEDAPP" "$APPLICATIONS/" + echo "Unmounting '/Volumes/$INSTALLERVOL'" + hdiutil detach "/Volumes/$INSTALLERVOL" fi