X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=utils%2Fdev_macos_install.sh;fp=utils%2Fdev_macos_install.sh;h=7c5fd15b1a3b712d1980adaf9e5b23dd12913471;hb=e83ce5d8ef826fc0b509a51f154abdf734501077;hp=e46f5245a2f8a5d0eb4b926f34a4b2365240eab7;hpb=786475501a15799d7c4058dbf74e4bf896d03736;p=jalview.git diff --git a/utils/dev_macos_install.sh b/utils/dev_macos_install.sh index e46f524..7c5fd15 100755 --- a/utils/dev_macos_install.sh +++ b/utils/dev_macos_install.sh @@ -1,43 +1,143 @@ #!/usr/bin/env bash # perform a dev build and install on local macOS machine -INSTALLERVOL="Jalview Non-Release Installer" -APP="Jalview Local.app" - +APP="" +INSTALLERVOL="" APPLICATIONS=/Applications -CHANNEL=NOCHANNEL +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 +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 [ x$1 != "xnogradle" ]; then - gradle installers -PCHANNEL=LOCAL -Pinstall4j_media_types=macosArchive +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" N=0 - while [ \! -e "/Volumes/$INSTALLERVOL/$APP" ]; do - if [ $(( N%1000 )) = 0 ]; then - echo -n "." - fi + 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 - echo "Removing '$APPLICATIONS/$APP'" - /bin/rm -r "$APPLICATIONS/$APP" - echo "Syncing '/Volumes/$INSTALLERVOL/$APP' to '$APPLICATIONS/'" - rsync -avh "/Volumes/$INSTALLERVOL/$APP" "$APPLICATIONS/" + +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'" - umount "/Volumes/$INSTALLERVOL" + hdiutil detach "/Volumes/$INSTALLERVOL" fi