-
-
Save rtrouton/0f7a993496df3aaa54a634ffaeae6067 to your computer and use it in GitHub Desktop.
Preinstall script for SAP GUI 7.50 rev 5 installer for macOS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
JAVA_INSTALLER=$(/bin/ls "${0%/*}"/*jdk*.tar.gz | /usr/bin/head -1) | |
JAVA_OPENJFX_INSTALLER=$(/bin/ls "${0%/*}"/*openjfx*.zip | /usr/bin/head -1) | |
JAVA_HOME=$(/usr/libexec/java_home) | |
JAVA8JFX_INSTALLED="$JAVA_HOME/jre/lib/javafx.properties" | |
JAVAOPENJFX=$(/usr/bin/find /Library/Java/JavaVirtualMachines -maxdepth 1 -iname "*javafx*" -type d | /usr/bin/head -1) | |
JAVAOPENJFX_INSTALLED="$JAVAOPENJFX/lib/javafx.properties" | |
ERROR=0 | |
function log { | |
echo "$1" | |
/usr/bin/logger "SAPGUI Installer: $1" | |
} | |
# Install Java 11 if Java 8 or Java 11 is not installed | |
if [[ -z "$JAVA_HOME" ]]; then | |
log "Java is not installed" | |
if [[ -e "$JAVA_INSTALLER" ]]; then | |
log "Bundled Java package is $JAVA_INSTALLER" | |
tar -xzf $JAVA_INSTALLER --directory /Library/Java/JavaVirtualMachines | |
# Fix permissions on installed Java 11 | |
INSTALLED_JAVA=$(/usr/bin/find /Library/Java/JavaVirtualMachines -maxdepth 1 -iname "*jdk*" -type d | /usr/bin/head -1) | |
log "Installed Java is $INSTALLED_JAVA" | |
chown -R root:wheel "$INSTALLED_JAVA" | |
chmod -R 755 "$INSTALLED_JAVA" | |
# Verify that SAPMachine JDK is now installed | |
/usr/libexec/java_home | |
if [[ $? -eq 0 ]]; then | |
log "Successfully installed $JAVA_INSTALLER" | |
else | |
log "ERROR! Installation of $JAVA_INSTALLER failed" | |
ERROR=1 | |
fi | |
else | |
log "ERROR! Bundled Java package $JAVA_INSTALLER not found" | |
ERROR=1 | |
fi | |
else | |
log "Java is already installed" | |
fi | |
# Install OpenJFX if Java JFX is not installed | |
JAVA_HOME=$(/usr/libexec/java_home) | |
if [[ -n "$JAVA_HOME" ]]; then | |
log "Java is installed. Checking for Java JFX" | |
if [[ -z "$JAVAOPENJFX" ]] && [[ ! -f "$JAVA_HOME/jre/lib/javafx.properties" ]]; then | |
log "Java JFX is not installed." | |
if [[ -e "$JAVA_OPENJFX_INSTALLER" ]]; then | |
log "Installing OpenJFX." | |
unzip "$JAVA_OPENJFX_INSTALLER" -d /Library/Java/JavaVirtualMachines | |
# Fix permissions on installed OpenJFX | |
JAVAOPENJFX_INSTALLED=$(/usr/bin/find /Library/Java/JavaVirtualMachines -maxdepth 1 -iname "*javafx*" -type d | /usr/bin/head -1) | |
log "Java JFX is installed at $JAVAOPENJFX_INSTALLED." | |
chown -R root:wheel "$JAVAOPENJFX_INSTALLED" | |
chmod -R 755 "$JAVAOPENJFX_INSTALLED" | |
# Verify that OpenJFX is now installed | |
if [[ -e "$JAVAOPENJFX_INSTALLED/lib/javafx.properties" ]]; then | |
log "OpenJFX is installed." | |
else | |
log "ERROR! OpenJFX is not installed." | |
ERROR=1 | |
fi | |
else | |
log "ERROR! $JAVA_OPENJFX_INSTALLER not found." | |
ERROR=1 | |
fi | |
else | |
log "Java JFX is already installed" | |
fi | |
fi | |
exit $ERROR |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment