Files
pkrstarsbot/libs/phantombot/launch-service.sh
2021-02-16 23:07:41 +01:00

127 lines
5.1 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (C) 2016-2020 phantombot.github.io/PhantomBot
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#
# PhantomBot Launcher - Linux and macOS
#
# Please run the following to launch the bot, the chmod is required only once.
# % chmod +x launch-service.sh
# % ./launch-service.sh
#
unset DISPLAY
tmp=""
if [[ "$OSTYPE" == "darwin"* ]]; then
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
cd "$DIR"
JAVA="./java-runtime-macos/bin/java"
elif [[ "$MACHTYPE" != "x86_64"* ]]; then
cd $(dirname $(readlink -f $0))
osdist=$(awk '/^ID(_LIKE)?=/' /etc/os-release | sed 's/"//g' | sort --field-separator== --key=1,1 --dictionary-order --reverse | cut -d = -f 2 | awk 'FNR == 1')
osdist2=$(awk '/^ID(_LIKE)?=/' /etc/os-release | sed 's/"//g' | sort --field-separator== --key=1,1 --dictionary-order --reverse | cut -d = -f 2 | awk 'FNR == 2')
osver=$(awk '/^VERSION_ID=/' /etc/os-release | sed 's/"//g' | cut -d = -f 2)
JAVA=$(which java)
if (( $? > 0 )); then
jvermaj=0
else
jvermaj=$(java --version | awk 'FNR == 1 { print $2 }' | cut -d . -f 1)
fi
if (( jvermaj < 11 )); then
echo "PhantomBot requires Java 11 or later to run."
echo
if [[ "$osdist" == *"debian"* ]]; then
echo "Please install the package openjdk-11-jre-headless"
echo
if (( osver < 10 )); then
echo "WARNING: You are running a Debian derivative lower than version 10 (buster)"
echo "Java 11 may not be available on this version"
echo "It is recommended to upgrade to at least Debian 10 (buster)"
echo "NOTE: Upgrading the major version of the OS usually means a clean install (wipe)"
echo
if (( osver == 9 )); then
echo "Alternatively, you can add the stretch-backports repository to apt and then you should be able to install openjdk-11-jre-headless"
echo "You can find instructions at https://github.com/superjamie/lazyweb/wiki/Raspberry-Pi-Debian-Backports#installation"
echo
fi
fi
echo "The commands to do this are:"
echo " sudo apt-get install openjdk-11-jre-headless"
echo " sudo update-alternatives --config java"
echo
echo "When you issue the update-alternatives command, select the option for java-11-openjdk"
elif [[ "$osdist" == *"fedora"* || "$osdist" == *"rhel"* ]]; then
echo "Please install the package java-11-openjdk-headless"
echo
if [[ "$osdist" == *"rhel"* || "$osdist2" == *"rhel"* ]] && (( osver < 7 )); then
echo "WARNING: You are running a RHEL derivative lower than version 7"
echo "Java 11 may not be available on this version"
echo "It is recommended to upgrade to at least RHEL 7"
echo "NOTE: Upgrading the major version of the OS usually means a clean install (wipe)"
echo
elif (( osver < 29 )); then
echo "WARNING: You are running a Fedora derivative lower than version 29"
echo "Java 11 may not be available on this version"
echo "It is recommended to upgrade to at least Fedora 29"
echo "NOTE: Upgrading the major version of the OS usually means a clean install (wipe)"
echo
fi
echo "The commands to do this are:"
echo " sudo yum install java-11-openjdk-headless"
echo " sudo alternatives --config java"
echo
echo "When you issue the alternatives command, select the option for java-11-openjdk"
fi
exit 1
fi
else
cd $(dirname $(readlink -f $0))
JAVA="./java-runtime-linux/bin/java"
fi
if mount | grep '/tmp' | grep -q noexec; then
mkdir -p $(dirname $(readlink -f $0))/tmp
tmp="-Djava.io.tmpdir=$(dirname $(readlink -f $0))/tmp"
fi
if [[ ! -x "${JAVA}" ]]; then
echo "Java does not have the executable permission"
echo "Please run the following command to fix this:"
echo " sudo chmod u+x ${JAVA}"
exit 1
fi
${JAVA} --add-opens java.base/java.lang=ALL-UNNAMED ${tmp} -Djava.security.policy=config/security -Xms1m -Dfile.encoding=UTF-8 -jar PhantomBot.jar ${1}