Skip to content

Instantly share code, notes, and snippets.

@rtrouton
Created December 14, 2018 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rtrouton/0f7a993496df3aaa54a634ffaeae6067 to your computer and use it in GitHub Desktop.
Save rtrouton/0f7a993496df3aaa54a634ffaeae6067 to your computer and use it in GitHub Desktop.
Preinstall script for SAP GUI 7.50 rev 5 installer for macOS
#!/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