From 583a749724700845d2d3552a0d3a759f16b25cfe Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 31 Aug 2020 20:52:43 -0700 Subject: [PATCH] macosx: Update macosx install script Use dialog engine to monitor progress and get sudo password Signed-off-by: Keith Packard --- altosui/Makefile.am | 2 +- altosui/ask-pass | 2 ++ altosui/install-macosx | 46 +++++++++++++++++++++++++----------------- micropeak/Makefile.am | 2 +- telegps/Makefile.am | 2 +- 5 files changed, 33 insertions(+), 21 deletions(-) create mode 100755 altosui/ask-pass diff --git a/altosui/Makefile.am b/altosui/Makefile.am index b172b022..6d4ed1bc 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -183,7 +183,7 @@ LINUX_FILES=$(FAT_FILES) $(LINUX_LIBS) $(FIRMWARE) $(DOC) $(desktop_file).in $(L LINUX_EXTRA=altosui-fat MACOSX_INFO_PLIST=Info.plist -MACOSX_INSTALL=install-macosx +MACOSX_INSTALL=install-macosx ask-pass MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(DOC) ReadMe-Mac.rtf $(MACOSX_ICONS) $(MACOSX_INSTALL) MACOSX_EXTRA=$(FIRMWARE) diff --git a/altosui/ask-pass b/altosui/ask-pass new file mode 100755 index 00000000..605ccb7c --- /dev/null +++ b/altosui/ask-pass @@ -0,0 +1,2 @@ +#!/bin/bash +osascript -e 'display dialog "Password:" with hidden answer default answer "" with title "Password for '$USER'"' -e 'text returned of result' diff --git a/altosui/install-macosx b/altosui/install-macosx index aced4ab9..8f0067e5 100755 --- a/altosui/install-macosx +++ b/altosui/install-macosx @@ -1,37 +1,47 @@ #!/bin/bash +JVM=/Library/Java/JavaVirtualMachines +dir=`dirname "$0"` + case `id -u` in 0) ;; *) - # Check for java - if [ ! -d /Library/Java/JavaVirtualMachines/ -o `ls /Library/Java/JavaVirtualMachine` == '' ]; then - open https://adoptopenjdk.net/ - osascript -e 'display dialog "Install Java from https://adoptopenjdk.net then click OK" buttons {"Continue"}' - fi - sudo "$0" "$@" + SUDO_ASKPASS="${dir}/ask-pass" sudo -A "$0" "$@" + exit 0 ;; esac -dir=`dirname "$0"` +# Check for java +if ls "$JVM" | grep -q adopt; then + echo "Adopt OpenJDK already present" +else + open https://adoptopenjdk.net/ + osascript -e 'display dialog "Install Java from https://adoptopenjdk.net then click Continue" buttons {"Continue"} default button 1 with title "Install Java"' >/dev/null +fi + cd "$dir" -APP=`echo *.app` LIBRARY=/Library/AltusMetrum -APPLICATIONS=/Applications/ +APPLICATIONS=/Applications +INSTALLED= for file in *; do - case "$i" in + echo 'Installing' "$file" + case "$file" in *.app) - mkdir -p "$(APPLICATIONS)" - if [ -d "$(APPLICATIONS)/$(APP)/." ]; then - rm -rf "$(APPLICATIONS)/$(APP)" + mkdir -p "${APPLICATIONS}" + if [ -d "${APPLICATIONS}/${file}" ]; then + rm -rf "${APPLICATIONS}/${file}" fi - cp -a "$i" "$(APPLICATIONS)/$(APP)" - chmod +w "$(APPLICATIONS)/$(APP)"/* - xattr -c "$(APPLICATIONS)/$(APP)"/* + cp -a "$file" "${APPLICATIONS}/${file}" + chmod -R +w "${APPLICATIONS}/${file}" + xattr -rc "${APPLICATIONS}/${file}" + APP=`basename "$file" .app` + INSTALLED="${INSTALLED} ${APP}" ;; *) - mkdir -p "$(LIBRARY)" - cp -a "$i" "$(LIBRARY)" + mkdir -p "${LIBRARY}" + cp -a "$file" "${LIBRARY}" ;; esac done +osascript -e 'display dialog "Installation of'"${INSTALLED}"' complete" with title "Installation Complete" buttons {"OK"} default button 1' >/dev/null diff --git a/micropeak/Makefile.am b/micropeak/Makefile.am index 23ec077e..816dd4b3 100644 --- a/micropeak/Makefile.am +++ b/micropeak/Makefile.am @@ -137,7 +137,7 @@ MACOSX_DRIVERS=$(MACOSX_DRIVER_1) $(MACOSX_DRIVER_0) MACOSX_INFO_PLIST=Info.plist MACOSX_README=ReadMe-Mac.rtf -MACOSX_INSTALL=../altosui/install-macosx +MACOSX_INSTALL=../altosui/install-macosx ../altosui/ask-pass MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_DRIVERS) $(MACOSX_README) $(DOC) $(MACOSX_ICONS) $(MACOSX_INSTALL) $(MACOSX_DRIVER_0): diff --git a/telegps/Makefile.am b/telegps/Makefile.am index 0e75abf1..26e5dfb8 100644 --- a/telegps/Makefile.am +++ b/telegps/Makefile.am @@ -153,7 +153,7 @@ LINUX_EXTRA=telegps-fat $(desktop_file).in MACOSX_INFO_PLIST=Info.plist MACOSX_README=ReadMe-Mac.rtf -MACOSX_INSTALL=../altosui/install-macosx +MACOSX_INSTALL=../altosui/install-macosx ../altosui/ask-pass MACOSX_FILES=$(FAT_FILES) libaltos.dylib $(MACOSX_INFO_PLIST) $(MACOSX_README) $(DOC) $(MACOSX_ICONS) $(MACOSX_INSTALL) MACOSX_EXTRA=$(FIRMWARE) -- 2.30.2