110 lines
2.6 KiB
Bash
Executable file
110 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
CWD=$(pwd)
|
|
|
|
# Check if the minecraft user and group exist. If not, then bail.
|
|
if [ "$(id -g minecraft 2> /dev/null)" != "987" -o "$(id -u minecraft 2> /dev/null)" != "987" ]; then
|
|
echo " You must have an 'minecraft' user and group to run this script."
|
|
echo " # groupadd -g 987 minecraft"
|
|
echo " # useradd -d /opt/$PRGNAM -g minecraft -s /bin/bash -u 987 minecraft --system "
|
|
exit 1
|
|
fi
|
|
|
|
PRGNAM=$(basename $CWD)
|
|
VERSION=${VERSION:-$(curl https://www.minecraft.net/en-us/download/server | grep "minecraft_server.*\.jar" -o | grep -o "[0-9][0-9.]*[0-9]" | head -n1)}
|
|
ARCH=${ARCH:-$(uname -m)}
|
|
BUILD=${BUILD:-1}
|
|
TAG=${TAG:-gwh}
|
|
|
|
TMP=${TMP:-/tmp/$TAG}
|
|
PKG=$TMP/pkg-$PRGNAM
|
|
OUTPUT=${OUTPUT:-/tmp}
|
|
PREFIX=/usr
|
|
|
|
REPOSITORY=${REPOSITORY:-/var/cache/SlackBuilds.gwh/$PRGNAM}
|
|
|
|
mkdir -p $REPOSITORY
|
|
|
|
[ ! -e $REPOSITORY/${PRGNAM}-${VERSION}.jar ] && wget -c $(curl https://www.minecraft.net/en-us/download/server | grep -o "https.*server\.jar") -O $REPOSITORY/${PRGNAM}-${VERSION}.jar
|
|
|
|
rm -fr $PKG
|
|
|
|
mkdir -p $PKG/opt/$PRGNAM
|
|
cp $REPOSITORY/${PRGNAM}-${VERSION}.jar $PKG/opt/$PRGNAM/$PRGNAM.jar
|
|
cat <<EOF > $PKG/opt/$PRGNAM/start.sh
|
|
#!/bin/bash
|
|
java -Xms1G -Xmx1G -jar /opt/$PRGNAM/$PRGNAM.jar nogui
|
|
EOF
|
|
chmod +x $PKG/opt/$PRGNAM/start.sh
|
|
chown -R minecraft:minecraft $PKG/opt/$PRGNAM/
|
|
|
|
mkdir -p $PKG/etc/rc.d/
|
|
cat <<EOF > $PKG/etc/rc.d/rc.$PRGNAM
|
|
#!/bin/bash
|
|
#Slackware startup deamon script
|
|
|
|
# Name of Service
|
|
NAME="Minecraft Daemon"
|
|
|
|
# user used to run the daemon
|
|
USERNAME=minecraft
|
|
|
|
PIDFILE=/var/run/minecraft.pid
|
|
|
|
func_stop() {
|
|
[ -e \$PIDFILE ] && kill \$(cat \$PIDFILE) && rm \$PIDFILE
|
|
}
|
|
|
|
func_start() {
|
|
echo -n "Starting \$NAME ... "
|
|
su - \$USERNAME -c /opt/$PRGNAM/start.sh &
|
|
echo $! > \$PIDFILE
|
|
}
|
|
|
|
|
|
case \$1 in
|
|
"start")
|
|
func_start
|
|
;;
|
|
|
|
"stop")
|
|
func_stop
|
|
;;
|
|
|
|
"restart")
|
|
func_stop
|
|
sleep 2
|
|
func_start
|
|
;;
|
|
*)
|
|
echo "Usage; start|stop|restart"
|
|
;;
|
|
esac
|
|
EOF
|
|
chmod +x $PKG/etc/rc.d/rc.$PRGNAM
|
|
|
|
mkdir -p $PKG/install
|
|
cat <<EOF > $PKG/install/doinst.sh
|
|
#!/bin/bash
|
|
[ ! -e /opt/$PRGNAM/eula.txt ] && /etc/rc.d/rc.$PRGNAM start
|
|
EOF
|
|
|
|
cat <<EOF > $PKG/install/slack-desc
|
|
|-----handy-ruler--------------------------------------------------------|
|
|
$PRGNAM: $PRGNAM (Proprietary Minecraft Server)
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM: https://www.minecraft.net/en-us/download/server/
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
$PRGNAM:
|
|
EOF
|
|
|
|
cd $PKG
|
|
rm -f $PKG/{,usr/}lib$(uname -m | grep -o 64)/*.la
|
|
|
|
/sbin/makepkg --linkadd y --chown n --prepend $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.txz
|