mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-03-15 03:01:23 +00:00
Compare commits
32 Commits
1.1.0
...
1.2.0-mult
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78cb05adda | ||
|
|
8493252645 | ||
|
|
2ee5a25c91 | ||
|
|
60ef1b8867 | ||
|
|
3eaf756aa2 | ||
|
|
bc318fa185 | ||
|
|
f93c42a23f | ||
|
|
f5dde77efe | ||
|
|
aa42633ab2 | ||
|
|
9ec336283f | ||
|
|
bbdb2c9b36 | ||
|
|
48e09f42fc | ||
|
|
ec7d182d38 | ||
|
|
9c7c95cf4f | ||
|
|
e32ffd1819 | ||
|
|
095c6ad099 | ||
|
|
14342c9632 | ||
|
|
f6df4d6694 | ||
|
|
0406e89c2a | ||
|
|
5ef21e1ddf | ||
|
|
414d5bd8ac | ||
|
|
15ccf03b28 | ||
|
|
828a48998f | ||
|
|
4b590e03ff | ||
|
|
0db8780ad9 | ||
|
|
5b744176df | ||
|
|
20b15e0330 | ||
|
|
818539e3de | ||
|
|
f48741f65c | ||
|
|
e9e5af849f | ||
|
|
22d68f5c7c | ||
|
|
690598da60 |
25
.github/workflows/build-multiarch.yml
vendored
Normal file
25
.github/workflows/build-multiarch.yml
vendored
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
name: Build and publish multiarch
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- multiarch
|
||||||
|
tags:
|
||||||
|
- "[0-9]+.[0-9]+.[0-9]+-multiarch"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docker-buildx:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2.2.0
|
||||||
|
- name: Get branch name
|
||||||
|
uses: nelonoel/branch-name@v1
|
||||||
|
- name: Docker Buildx
|
||||||
|
uses: ilteoood/docker_buildx@1.0.4
|
||||||
|
with:
|
||||||
|
publish: true
|
||||||
|
imageName: itzg/minecraft-server
|
||||||
|
tag: ${{ env.BRANCH_NAME }}
|
||||||
|
dockerHubUser: ${{ secrets.DOCKER_USER }}
|
||||||
|
dockerHubPassword: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
15
.github/workflows/main.yml
vendored
15
.github/workflows/main.yml
vendored
@@ -1,10 +1,21 @@
|
|||||||
# This is a basic workflow to help you get started with Actions
|
# This is a basic workflow to help you get started with Actions
|
||||||
|
|
||||||
name: build
|
name: Build non-multiarch branches/tags
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches:
|
||||||
|
- master
|
||||||
|
- openj9
|
||||||
|
- openj9-nightly
|
||||||
|
- adopt11
|
||||||
|
- adopt13
|
||||||
|
tags:
|
||||||
|
- "[0-9]+.[0-9]+.[0-9]+"
|
||||||
|
- "[0-9]+.[0-9]+.[0-9]+-openj9"
|
||||||
|
- "[0-9]+.[0-9]+.[0-9]+-openj9-nightly"
|
||||||
|
- "[0-9]+.[0-9]+.[0-9]+-adopt11"
|
||||||
|
- "[0-9]+.[0-9]+.[0-9]+-adopt13"
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
|
||||||
|
|||||||
5
BUILDING.md
Normal file
5
BUILDING.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Ensure buildx/BuildKit support is enabled and run:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker buildx build --platform=linux/arm64 --platform=linux/arm/v7 --platform=linux/amd64 --tag itzg/minecraft-server:multiarch --push .
|
||||||
|
```
|
||||||
28
DEVELOPMENT.md
Normal file
28
DEVELOPMENT.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
Individual scripts can be iteratively developed and tested using the following procedure.
|
||||||
|
|
||||||
|
First, build a baseline of the image to include the packages needed by existing or new scripts:
|
||||||
|
|
||||||
|
```shell script
|
||||||
|
docker build -t mc-dev .
|
||||||
|
```
|
||||||
|
|
||||||
|
Using the baseline image, an interactive container can be started to iteratively run the scripts to be developed. By attaching the current workspace directory, you can use the local editor of your choice to iteratively modify scripts while using the container to run them.
|
||||||
|
|
||||||
|
```shell script
|
||||||
|
docker run -it --rm -v ${PWD}:/scripts -e SCRIPTS=/scripts/ --entrypoint bash mc-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
From within the container you can run individual scripts via the attached `/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
|
||||||
|
|
||||||
|
```shell script
|
||||||
|
export VANILLA_VERSION=1.12.2
|
||||||
|
/scripts/start-magma
|
||||||
|
```
|
||||||
|
|
||||||
|
...or pre-pending script execution:
|
||||||
|
|
||||||
|
```shell script
|
||||||
|
VANILLA_VERSION=1.12.2 /scripts/start-magma
|
||||||
|
```
|
||||||
|
|
||||||
|
> NOTE: You may want to temporarily add an `exit` statement near the end of your script to isolate execution to just the script you're developing.
|
||||||
50
Dockerfile
50
Dockerfile
@@ -1,29 +1,27 @@
|
|||||||
FROM openjdk:8u212-jre-alpine
|
FROM ubuntu:18.04
|
||||||
|
|
||||||
LABEL maintainer "itzg"
|
LABEL maintainer "itzg"
|
||||||
|
|
||||||
RUN apk add --no-cache -U \
|
RUN apt-get update \
|
||||||
openssl \
|
&& DEBIAN_FRONTEND=noninteractive \
|
||||||
imagemagick \
|
apt-get install -y \
|
||||||
lsof \
|
openjdk-8-jre-headless \
|
||||||
su-exec \
|
imagemagick \
|
||||||
shadow \
|
gosu \
|
||||||
bash \
|
curl wget \
|
||||||
curl iputils wget \
|
jq \
|
||||||
git \
|
dos2unix \
|
||||||
jq \
|
mysql-client \
|
||||||
mysql-client \
|
tzdata \
|
||||||
tzdata \
|
rsync \
|
||||||
rsync \
|
nano \
|
||||||
nano \
|
unzip \
|
||||||
sudo \
|
knockd \
|
||||||
knock \
|
ttf-dejavu \
|
||||||
ttf-dejavu
|
&& apt-get clean
|
||||||
|
|
||||||
RUN addgroup -g 1000 minecraft \
|
RUN addgroup --gid 1000 minecraft \
|
||||||
&& adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft \
|
&& adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft
|
||||||
&& mkdir -m 777 /data \
|
|
||||||
&& chown minecraft:minecraft /data /home/minecraft
|
|
||||||
|
|
||||||
COPY files/sudoers* /etc/sudoers.d
|
COPY files/sudoers* /etc/sudoers.d
|
||||||
|
|
||||||
@@ -31,9 +29,9 @@ EXPOSE 25565 25575
|
|||||||
|
|
||||||
# hook into docker BuildKit --platform support
|
# hook into docker BuildKit --platform support
|
||||||
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
||||||
ARG TARGETOS=linux
|
ARG TARGETOS
|
||||||
ARG TARGETARCH=amd64
|
ARG TARGETARCH
|
||||||
ARG TARGETVARIANT=""
|
ARG TARGETVARIANT
|
||||||
|
|
||||||
ARG EASY_ADD_VER=0.7.1
|
ARG EASY_ADD_VER=0.7.1
|
||||||
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||||
@@ -67,7 +65,7 @@ COPY log4j2.xml /tmp/log4j2.xml
|
|||||||
WORKDIR /data
|
WORKDIR /data
|
||||||
|
|
||||||
ENV UID=1000 GID=1000 \
|
ENV UID=1000 GID=1000 \
|
||||||
JVM_XX_OPTS="-XX:+UseG1GC" MEMORY="1G" \
|
MEMORY="1G" \
|
||||||
TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED SPONGEBRANCH=STABLE SPONGEVERSION= FABRICVERSION=LATEST LEVEL=world \
|
TYPE=VANILLA VERSION=LATEST FORGEVERSION=RECOMMENDED SPONGEBRANCH=STABLE SPONGEVERSION= FABRICVERSION=LATEST LEVEL=world \
|
||||||
PVP=true DIFFICULTY=easy ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \
|
PVP=true DIFFICULTY=easy ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \
|
||||||
LEVEL_TYPE=DEFAULT SERVER_PORT=25565 ONLINE_MODE=TRUE SERVER_NAME="Dedicated Server" \
|
LEVEL_TYPE=DEFAULT SERVER_PORT=25565 ONLINE_MODE=TRUE SERVER_NAME="Dedicated Server" \
|
||||||
|
|||||||
@@ -525,6 +525,15 @@ A [Magma](https://magmafoundation.org/) server, which is a combination of Forge
|
|||||||
|
|
||||||
> **NOTE** there are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2"
|
> **NOTE** there are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2"
|
||||||
|
|
||||||
|
|
||||||
|
## Running a Mohist server
|
||||||
|
|
||||||
|
A [Mohist](https://github.com/Mohist-Community/Mohist) server can be used with
|
||||||
|
|
||||||
|
-e TYPE=MOHIST
|
||||||
|
|
||||||
|
> **NOTE** there are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2"
|
||||||
|
|
||||||
## Running a server with a Feed the Beast modpack
|
## Running a server with a Feed the Beast modpack
|
||||||
|
|
||||||
> **NOTE** requires `itzg/minecraft-server:multiarch` image
|
> **NOTE** requires `itzg/minecraft-server:multiarch` image
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# manually purge any pre-existing manifest list
|
|
||||||
# since docker manifest command lacks a "remove" operation
|
|
||||||
rm -rf ~/.docker/manifests/docker.io_itzg_minecraft-server-multiarch
|
|
||||||
|
|
||||||
export DOCKER_BUILDKIT=1
|
|
||||||
|
|
||||||
docker build --platform linux/arm64 -t itzg/minecraft-server:arm64 .
|
|
||||||
docker push itzg/minecraft-server:arm64
|
|
||||||
|
|
||||||
armv7tag=armv7-buildkit
|
|
||||||
armv7workDir=/tmp/armv7-$$
|
|
||||||
git worktree add $armv7workDir armv7
|
|
||||||
# sub-shell for build of armv7
|
|
||||||
(
|
|
||||||
cd $armv7workDir
|
|
||||||
docker build --platform linux/arm/v7 -t itzg/minecraft-server:$armv7tag .
|
|
||||||
docker push itzg/minecraft-server:$armv7tag
|
|
||||||
)
|
|
||||||
git worktree remove $armv7workDir
|
|
||||||
|
|
||||||
docker pull itzg/minecraft-server
|
|
||||||
# use the rpi build one for now since armv7-buildkit is giving ABI mismatch on curl
|
|
||||||
docker pull itzg/minecraft-server:armv7
|
|
||||||
|
|
||||||
docker manifest create itzg/minecraft-server:multiarch \
|
|
||||||
itzg/minecraft-server \
|
|
||||||
itzg/minecraft-server:armv7 \
|
|
||||||
itzg/minecraft-server:arm64
|
|
||||||
|
|
||||||
docker manifest inspect itzg/minecraft-server:multiarch
|
|
||||||
|
|
||||||
docker manifest push -p itzg/minecraft-server:multiarch
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
manifest="itzg/minecraft-server:multiarch"
|
|
||||||
|
|
||||||
for t in latest rpi3 aarch64; do
|
|
||||||
docker pull itzg/minecraft-server:$t
|
|
||||||
done
|
|
||||||
|
|
||||||
docker manifest create --amend ${manifest} \
|
|
||||||
itzg/minecraft-server:aarch64 \
|
|
||||||
itzg/minecraft-server:latest \
|
|
||||||
itzg/minecraft-server:rpi3
|
|
||||||
|
|
||||||
docker manifest annotate --os linux --arch amd64 ${manifest} itzg/minecraft-server:latest
|
|
||||||
docker manifest annotate --os linux --arch arm64 ${manifest} itzg/minecraft-server:aarch64
|
|
||||||
docker manifest annotate --os linux --arch arm --variant v7 ${manifest} itzg/minecraft-server:rpi3
|
|
||||||
|
|
||||||
docker manifest push ${manifest}
|
|
||||||
@@ -10,12 +10,28 @@ function TrapExit {
|
|||||||
|
|
||||||
batchMode=false
|
batchMode=false
|
||||||
|
|
||||||
while getopts "b" arg
|
while getopts "hbt:" arg
|
||||||
do
|
do
|
||||||
case $arg in
|
case $arg in
|
||||||
b)
|
b)
|
||||||
batchMode=true
|
batchMode=true
|
||||||
;;
|
;;
|
||||||
|
t)
|
||||||
|
tag=${OPTARG}
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
echo "
|
||||||
|
Usage $0 [options]
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-b enable batch mode, which avoids interactive prompts and causes script to fail immediately
|
||||||
|
when any merge fails
|
||||||
|
-t TAG tag and push the current revision on master with the given tag
|
||||||
|
and apply respective tags to each branch
|
||||||
|
-h display this help and exit
|
||||||
|
"
|
||||||
|
exit
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported arg $arg"
|
echo "Unsupported arg $arg"
|
||||||
exit 2
|
exit 2
|
||||||
@@ -34,6 +50,10 @@ test -d ./.git || { echo ".git folder was not found. Please start this script fr
|
|||||||
git checkout master
|
git checkout master
|
||||||
git pull --all || { echo "Can't pull the repo!"; \
|
git pull --all || { echo "Can't pull the repo!"; \
|
||||||
exit 1; }
|
exit 1; }
|
||||||
|
if [[ $tag ]]; then
|
||||||
|
git tag $tag
|
||||||
|
git push origin $tag
|
||||||
|
fi
|
||||||
|
|
||||||
git_branches=$(git branch -a)
|
git_branches=$(git branch -a)
|
||||||
|
|
||||||
@@ -57,6 +77,10 @@ for branch in "${branches_list[@]}"; do
|
|||||||
git commit -m "Auto merge branch with master" -a
|
git commit -m "Auto merge branch with master" -a
|
||||||
# push may fail if remote doesn't have this branch yet. In this case - sending branch
|
# push may fail if remote doesn't have this branch yet. In this case - sending branch
|
||||||
git push || git push -u origin "$branch" || { echo "Can't push changes to the origin."; exit 1; }
|
git push || git push -u origin "$branch" || { echo "Can't push changes to the origin."; exit 1; }
|
||||||
|
if [[ $tag ]]; then
|
||||||
|
git tag "$tag-$branch"
|
||||||
|
git push origin "$tag-$branch"
|
||||||
|
fi
|
||||||
elif ${batchMode}; then
|
elif ${batchMode}; then
|
||||||
status=$?
|
status=$?
|
||||||
echo "Git merge failed in batch mode"
|
echo "Git merge failed in batch mode"
|
||||||
|
|||||||
0
docs/.gitkeep
Normal file
0
docs/.gitkeep
Normal file
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
if isTrue "${ENABLE_AUTOPAUSE}" && [[ "$( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }')" =~ ^T.*$ ]]; then
|
if isTrue "${ENABLE_AUTOPAUSE}" && [[ "$( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }')" =~ ^T.*$ ]]; then
|
||||||
echo "Java process suspended by Autopause function"
|
echo "Java process suspended by Autopause function"
|
||||||
|
|||||||
6
start
6
start
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
umask 0002
|
umask 0002
|
||||||
chmod g+w /data
|
chmod g+w /data
|
||||||
@@ -45,7 +45,7 @@ if [ $(id -u) = 0 ]; then
|
|||||||
echo 'hosts: files dns' > /etc/nsswitch.conf
|
echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec su-exec ${runAsUser}:${runAsGroup} /start-configuration $@
|
exec gosu ${runAsUser}:${runAsGroup} ${SCRIPTS:-/}start-configuration $@
|
||||||
else
|
else
|
||||||
exec /start-configuration $@
|
exec ${SCRIPTS:-/}start-configuration $@
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
log "Autopause functionality enabled"
|
log "Autopause functionality enabled"
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
|
|
||||||
#umask 002
|
#umask 002
|
||||||
export HOME=/data
|
export HOME=/data
|
||||||
|
|
||||||
|
log "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"
|
||||||
|
|
||||||
if [ ! -e /data/eula.txt ]; then
|
if [ ! -e /data/eula.txt ]; then
|
||||||
EULA="${EULA,,}"
|
EULA="${EULA,,}"
|
||||||
if [ "$EULA" != "true" ]; then
|
if [ "$EULA" != "true" ]; then
|
||||||
@@ -28,15 +30,6 @@ if [ ! -e /data/eula.txt ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
log "Running as uid=$(id -u) gid=$(id -g) with /data as '$(ls -lnd /data)'"
|
|
||||||
|
|
||||||
if ! touch /data/.verify_access; then
|
|
||||||
log "ERROR: /data doesn't seem to be writable. Please make sure attached directory is writable by uid=$(id -u)"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm /data/.verify_access || true
|
|
||||||
|
|
||||||
if [[ $PROXY ]]; then
|
if [[ $PROXY ]]; then
|
||||||
export http_proxy="$PROXY"
|
export http_proxy="$PROXY"
|
||||||
export https_proxy="$PROXY"
|
export https_proxy="$PROXY"
|
||||||
@@ -69,53 +62,61 @@ cd /data || exit 1
|
|||||||
export ORIGINAL_TYPE=${TYPE^^}
|
export ORIGINAL_TYPE=${TYPE^^}
|
||||||
|
|
||||||
if isTrue "${ENABLE_AUTOPAUSE}"; then
|
if isTrue "${ENABLE_AUTOPAUSE}"; then
|
||||||
/start-autopause
|
${SCRIPTS:-/}start-autopause
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log "Resolving type given ${TYPE}"
|
log "Resolving type given ${TYPE}"
|
||||||
case "${TYPE^^}" in
|
case "${TYPE^^}" in
|
||||||
*BUKKIT|SPIGOT)
|
*BUKKIT|SPIGOT)
|
||||||
exec /start-deployBukkitSpigot "$@"
|
exec ${SCRIPTS:-/}start-deployBukkitSpigot "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
PAPER)
|
PAPER)
|
||||||
exec /start-deployPaper "$@"
|
exec ${SCRIPTS:-/}start-deployPaper "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
TUINITY)
|
TUINITY)
|
||||||
exec /start-deployTuinity "$@"
|
exec ${SCRIPTS:-/}start-deployTuinity "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FORGE)
|
FORGE)
|
||||||
exec /start-deployForge "$@"
|
exec ${SCRIPTS:-/}start-deployForge "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FABRIC)
|
FABRIC)
|
||||||
exec /start-deployFabric "$@"
|
exec ${SCRIPTS:-/}start-deployFabric "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FTB|CURSEFORGE)
|
FTBA)
|
||||||
exec /start-deployFTB "$@"
|
exec ${SCRIPTS:-/}start-deployFTB "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
CURSEFORGE|FTB)
|
||||||
|
exec ${SCRIPTS:-/}start-deployCF "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
VANILLA)
|
VANILLA)
|
||||||
exec /start-deployVanilla "$@"
|
exec ${SCRIPTS:-/}start-deployVanilla "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
SPONGEVANILLA)
|
SPONGEVANILLA)
|
||||||
exec /start-deploySpongeVanilla "$@"
|
exec ${SCRIPTS:-/}start-deploySpongeVanilla "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
CUSTOM)
|
CUSTOM)
|
||||||
exec /start-deployCustom "$@"
|
exec ${SCRIPTS:-/}start-deployCustom "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
CURSE_INSTANCE)
|
CURSE_INSTANCE)
|
||||||
exec /start-validateCurseInstance "$@"
|
exec ${SCRIPTS:-/}start-validateCurseInstance "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
MAGMA)
|
MAGMA)
|
||||||
exec /start-magma "$@"
|
exec ${SCRIPTS:-/}start-magma "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
MOHIST)
|
||||||
|
exec ${SCRIPTS:-/}start-mohist "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -102,4 +102,4 @@ export TYPE=SPIGOT
|
|||||||
export SKIP_LOG4J_CONFIG=true
|
export SKIP_LOG4J_CONFIG=true
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
133
start-deployCF
Normal file
133
start-deployCF
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. /start-utils
|
||||||
|
|
||||||
|
export FTB_BASE_DIR=/data/FeedTheBeast
|
||||||
|
legacyJavaFixerUrl=http://ftb.cursecdn.com/FTB2/maven/net/minecraftforge/lex/legacyjavafixer/1.0/legacyjavafixer-1.0.jar
|
||||||
|
export TYPE=CURSEFORGE
|
||||||
|
|
||||||
|
FTB_SERVER_MOD=${FTB_SERVER_MOD:-$CF_SERVER_MOD}
|
||||||
|
|
||||||
|
log "Looking for CurseForge server modpack."
|
||||||
|
if [[ -z $FTB_SERVER_MOD ]]; then
|
||||||
|
log "Environment variable FTB_SERVER_MOD not set."
|
||||||
|
log "Set FTB_SERVER_MOD to the file name of the FTB server modpack."
|
||||||
|
log "(And place the modpack in the /data directory.)"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
entryScriptExpr="-name ServerStart.sh -o -name ServerStartLinux.sh -o -name LaunchServer.sh"
|
||||||
|
|
||||||
|
if [[ -d ${FTB_BASE_DIR} ]]; then
|
||||||
|
startScriptCount=$(find ${FTB_BASE_DIR} $entryScriptExpr |wc -l)
|
||||||
|
if [[ $startScriptCount > 1 ]]; then
|
||||||
|
log "Conflicting FTB/CurseForge packages have been installed. Please cleanup ${FTB_BASE_DIR}"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
startScriptCount=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# only download and install if a mod pack isn't already installed
|
||||||
|
# also check for the start script rather than just the folder
|
||||||
|
# this allows saving just the world separate from the rest of the data directory
|
||||||
|
if [[ $startScriptCount = 0 ]]; then
|
||||||
|
srv_modpack=${FTB_SERVER_MOD}
|
||||||
|
if isURL ${srv_modpack}; then
|
||||||
|
case $srv_modpack in
|
||||||
|
https://www.feed-the-beast.com/*/download|https://www.curseforge.com/minecraft/modpacks/*/download/*/file)
|
||||||
|
;;
|
||||||
|
https://www.curseforge.com/minecraft/modpacks/*/download/*)
|
||||||
|
srv_modpack=${srv_modpack}/file;;
|
||||||
|
https://www.feed-the-beast.com/*)
|
||||||
|
srv_modpack=${srv_modpack}/download;;
|
||||||
|
esac
|
||||||
|
file=$(basename $(dirname $srv_modpack))
|
||||||
|
downloaded=/data/${file}.zip
|
||||||
|
if [ ! -e $downloaded ]; then
|
||||||
|
log "Downloading FTB modpack...
|
||||||
|
$srv_modpack -> $downloaded"
|
||||||
|
curl -sSL -o $downloaded $srv_modpack
|
||||||
|
fi
|
||||||
|
srv_modpack=$downloaded
|
||||||
|
fi
|
||||||
|
if [[ ${srv_modpack:0:5} == "data/" ]]; then
|
||||||
|
# Prepend with "/"
|
||||||
|
srv_modpack=/${srv_modpack}
|
||||||
|
fi
|
||||||
|
if [[ ! ${srv_modpack:0:1} == "/" ]]; then
|
||||||
|
# If not an absolute path, assume file is in "/data"
|
||||||
|
srv_modpack=/data/${srv_modpack}
|
||||||
|
fi
|
||||||
|
if [[ ! -f ${srv_modpack} ]]; then
|
||||||
|
log "FTB server modpack ${srv_modpack} not found."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
if [[ ! ${srv_modpack: -4} == ".zip" ]]; then
|
||||||
|
log "FTB server modpack ${srv_modpack} is not a zip archive."
|
||||||
|
log "Please set FTB_SERVER_MOD to a file with a .zip extension."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Unpacking FTB server modpack ${srv_modpack} ..."
|
||||||
|
mkdir -p ${FTB_BASE_DIR}
|
||||||
|
unzip -o ${srv_modpack} -d ${FTB_BASE_DIR} | awk '{printf "."} END {print ""}'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $(find ${FTB_BASE_DIR} $entryScriptExpr | wc -l) = 0 ]]; then
|
||||||
|
|
||||||
|
# Allow up to 2 levels since some modpacks have a top-level directory named
|
||||||
|
# for the modpack
|
||||||
|
forgeJar=$(find ${FTB_BASE_DIR} -maxdepth 2 -name 'forge*.jar' -a -not -name 'forge*installer')
|
||||||
|
if [[ "$forgeJar" ]]; then
|
||||||
|
export FTB_BASE_DIR=$(dirname "${forgeJar}")
|
||||||
|
log "No entry script found, so building one for ${forgeJar}"
|
||||||
|
cat > "${FTB_BASE_DIR}/ServerStart.sh" <<EOF
|
||||||
|
#!/bin/sh
|
||||||
|
. ./settings-local.sh
|
||||||
|
java \${JAVA_PARAMETERS} -Xmx\${MAX_RAM} -jar $(basename "${forgeJar}") nogui
|
||||||
|
EOF
|
||||||
|
chmod +x "${FTB_BASE_DIR}/ServerStart.sh"
|
||||||
|
else
|
||||||
|
log "Please make sure you are using the server version of the FTB modpack!"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
scriptCount=$(find "${FTB_BASE_DIR}" $entryScriptExpr | wc -l)
|
||||||
|
if [[ $scriptCount = 0 ]]; then
|
||||||
|
log "Please make sure you are using the server version of the FTB modpack!"
|
||||||
|
exit 2
|
||||||
|
elif [[ $scriptCount > 1 ]]; then
|
||||||
|
log "Ambigous startup scripts in FTB modpack!"
|
||||||
|
log "found:"
|
||||||
|
find ${FTB_BASE_DIR} $entryScriptExpr
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
export FTB_SERVER_START=$(find "${FTB_BASE_DIR}" $entryScriptExpr)
|
||||||
|
|
||||||
|
export FTB_DIR=$(dirname "${FTB_SERVER_START}")
|
||||||
|
chmod a+x "${FTB_SERVER_START}"
|
||||||
|
grep fml.queryResult=confirm ${FTB_SERVER_START} > /dev/null || \
|
||||||
|
sed -i 's/-jar/-Dfml.queryResult=confirm -jar/' "${FTB_SERVER_START}"
|
||||||
|
sed -i 's/.*read.*Restart now/#\0/' "${FTB_SERVER_START}"
|
||||||
|
legacyJavaFixerPath="${FTB_DIR}/mods/legacyjavafixer.jar"
|
||||||
|
|
||||||
|
if isTrue ${FTB_LEGACYJAVAFIXER} && [ ! -e "${legacyJavaFixerPath}" ]; then
|
||||||
|
log "Installing legacy java fixer to ${legacyJavaFixerPath}"
|
||||||
|
curl -sSL -o "${legacyJavaFixerPath}" ${legacyJavaFixerUrl}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e "${FTB_DIR}/FTBInstall.sh" ]; then
|
||||||
|
pushd "${FTB_DIR}"
|
||||||
|
sh FTBInstall.sh
|
||||||
|
popd
|
||||||
|
elif [ -e "${FTB_DIR}/Install.sh" ]; then
|
||||||
|
pushd "${FTB_DIR}"
|
||||||
|
sh Install.sh
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Continue to Final Setup
|
||||||
|
exec /start-finalSetup01World $@
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
if isURL ${CUSTOM_SERVER}; then
|
if isURL ${CUSTOM_SERVER}; then
|
||||||
filename=$(basename ${CUSTOM_SERVER})
|
filename=$(basename ${CUSTOM_SERVER})
|
||||||
@@ -28,4 +28,4 @@ fi
|
|||||||
export SKIP_LOG4J_CONFIG=true
|
export SKIP_LOG4J_CONFIG=true
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
178
start-deployFTB
178
start-deployFTB
@@ -1,138 +1,70 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
ftbInstallMarker=".ftb-installed"
|
||||||
|
|
||||||
export FTB_BASE_DIR=/data/FeedTheBeast
|
. ${SCRIPTS:-/}start-utils
|
||||||
legacyJavaFixerUrl=http://ftb.cursecdn.com/FTB2/maven/net/minecraftforge/lex/legacyjavafixer/1.0/legacyjavafixer-1.0.jar
|
isDebugging && set -x
|
||||||
export TYPE=FEED-THE-BEAST
|
set -e
|
||||||
|
|
||||||
FTB_SERVER_MOD=${FTB_SERVER_MOD:-$CF_SERVER_MOD}
|
if ! [[ -v FTB_MODPACK_ID ]]; then
|
||||||
|
log "ERROR FTB_MODPACK_ID is required with TYPE=FTB"
|
||||||
log "Looking for Feed-The-Beast / CurseForge server modpack."
|
exit 1
|
||||||
if [[ -z $FTB_SERVER_MOD ]]; then
|
|
||||||
log "Environment variable FTB_SERVER_MOD not set."
|
|
||||||
log "Set FTB_SERVER_MOD to the file name of the FTB server modpack."
|
|
||||||
log "(And place the modpack in the /data directory.)"
|
|
||||||
exit 2
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
entryScriptExpr="
|
if ! [[ ${FTB_MODPACK_ID} =~ [0-9]+ ]]; then
|
||||||
-name ServerStart.sh
|
log "ERROR FTB_MODPACK_ID needs to be numeric"
|
||||||
-o -name ServerStartLinux.sh
|
exit 1
|
||||||
-o -name LaunchServer.sh
|
fi
|
||||||
-o -name server-start.sh
|
|
||||||
"
|
|
||||||
|
|
||||||
if [[ -d ${FTB_BASE_DIR} ]]; then
|
if ! [[ -v FTB_MODPACK_VERSION_ID ]]; then
|
||||||
startScriptCount=$(find ${FTB_BASE_DIR} $entryScriptExpr |wc -l)
|
if ! FTB_MODPACK_VERSION_ID=$(curl -fsSL https://api.modpacks.ch/public/modpack/${FTB_MODPACK_ID} | jq -r '.versions | sort_by(.updated)[-1].id'); then
|
||||||
if [[ $startScriptCount > 1 ]]; then
|
log "ERROR unable to resolve latest modpack version ID for modpack ${FTB_MODPACK_ID}"
|
||||||
log "Conflicting FTB/CurseForge packages have been installed. Please cleanup ${FTB_BASE_DIR}"
|
exit 1
|
||||||
exit 2
|
|
||||||
fi
|
fi
|
||||||
|
elif ! [[ ${FTB_MODPACK_VERSION_ID} =~ [0-9]+ ]]; then
|
||||||
|
log "ERROR FTB_MODPACK_VERSION_ID needs to be numeric"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ -f "${ftbInstallMarker}" ] || [ $(cat "${ftbInstallMarker}") != "${FTB_MODPACK_ID}=${FTB_MODPACK_VERSION_ID}" ]; then
|
||||||
|
ftbInstaller=/data/ftb-installer
|
||||||
|
if ! [[ -f "${ftbInstaller}" ]]; then
|
||||||
|
log "Downloading FTB installer"
|
||||||
|
curl -fsSL https://api.modpacks.ch/public/modpack/1/1/server/linux -o "${ftbInstaller}"
|
||||||
|
chmod +x "${ftbInstaller}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf forge*jar mods config libraries defaultconfigs changelogs
|
||||||
|
|
||||||
|
log "Installing modpack ID ${FTB_MODPACK_ID}, version ID ${FTB_MODPACK_VERSION_ID}"
|
||||||
|
${ftbInstaller} ${FTB_MODPACK_ID} ${FTB_MODPACK_VERSION_ID} --noscript --auto
|
||||||
|
rm -f forge*installer.jar
|
||||||
|
|
||||||
|
echo "${FTB_MODPACK_ID}=${FTB_MODPACK_VERSION_ID}" > ${ftbInstallMarker}
|
||||||
else
|
else
|
||||||
startScriptCount=0
|
log "FTB modpack ID ${FTB_MODPACK_ID}, version ID ${FTB_MODPACK_VERSION_ID} is ready to go"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# only download and install if a mod pack isn't already installed
|
isDebugging && cat version.json
|
||||||
# also check for the start script rather than just the folder
|
forgeVersion=$(jq -r '.targets[] | select(.name == "forge") | .version' version.json)
|
||||||
# this allows saving just the world separate from the rest of the data directory
|
mcVersion=$(jq -r '.targets[] | select(.name == "minecraft") | .version' version.json)
|
||||||
if [[ $startScriptCount = 0 ]]; then
|
|
||||||
srv_modpack=${FTB_SERVER_MOD}
|
variants=(
|
||||||
if isURL ${srv_modpack}; then
|
forge-${mcVersion}-${forgeVersion}.jar
|
||||||
case $srv_modpack in
|
forge-${mcVersion}-${forgeVersion}-universal.jar
|
||||||
https://www.feed-the-beast.com/*/download|https://www.curseforge.com/minecraft/modpacks/*/download/*/file)
|
forge-${mcVersion}-${forgeVersion}-${mcVersion}-universal.jar
|
||||||
;;
|
)
|
||||||
https://www.curseforge.com/minecraft/modpacks/*/download/*)
|
for f in ${variants[@]}; do
|
||||||
srv_modpack=${srv_modpack}/file;;
|
if [ -f $f ]; then
|
||||||
https://www.feed-the-beast.com/*)
|
export SERVER=$f
|
||||||
srv_modpack=${srv_modpack}/download;;
|
break
|
||||||
esac
|
|
||||||
file=$(basename $(dirname $srv_modpack))
|
|
||||||
downloaded=/data/${file}.zip
|
|
||||||
if [ ! -e $downloaded ]; then
|
|
||||||
log "Downloading FTB modpack...
|
|
||||||
$srv_modpack -> $downloaded"
|
|
||||||
curl -sSL -o $downloaded $srv_modpack
|
|
||||||
fi
|
|
||||||
srv_modpack=$downloaded
|
|
||||||
fi
|
fi
|
||||||
if [[ ${srv_modpack:0:5} == "data/" ]]; then
|
done
|
||||||
# Prepend with "/"
|
if ! [ -v SERVER ]; then
|
||||||
srv_modpack=/${srv_modpack}
|
log "ERROR unable to locate the installed forge server jar"
|
||||||
fi
|
ls *.jar
|
||||||
if [[ ! ${srv_modpack:0:1} == "/" ]]; then
|
exit 2
|
||||||
# If not an absolute path, assume file is in "/data"
|
|
||||||
srv_modpack=/data/${srv_modpack}
|
|
||||||
fi
|
|
||||||
if [[ ! -f ${srv_modpack} ]]; then
|
|
||||||
log "FTB server modpack ${srv_modpack} not found."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
if [[ ! ${srv_modpack: -4} == ".zip" ]]; then
|
|
||||||
log "FTB server modpack ${srv_modpack} is not a zip archive."
|
|
||||||
log "Please set FTB_SERVER_MOD to a file with a .zip extension."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
log "Unpacking FTB server modpack ${srv_modpack} ..."
|
|
||||||
mkdir -p ${FTB_BASE_DIR}
|
|
||||||
unzip -o ${srv_modpack} -d ${FTB_BASE_DIR} | awk '{printf "."} END {print ""}'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ $(find ${FTB_BASE_DIR} $entryScriptExpr | wc -l) = 0 ]]; then
|
|
||||||
|
|
||||||
# Allow up to 2 levels since some modpacks have a top-level directory named
|
|
||||||
# for the modpack
|
|
||||||
forgeJar=$(find ${FTB_BASE_DIR} -maxdepth 2 -name 'forge*.jar' -a -not -name 'forge*installer')
|
|
||||||
if [[ "$forgeJar" ]]; then
|
|
||||||
export FTB_BASE_DIR=$(dirname "${forgeJar}")
|
|
||||||
log "No entry script found, so building one for ${forgeJar}"
|
|
||||||
cat > "${FTB_BASE_DIR}/ServerStart.sh" <<EOF
|
|
||||||
#!/bin/sh
|
|
||||||
. ./settings-local.sh
|
|
||||||
java \${JAVA_PARAMETERS} -Xmx\${MAX_RAM} -jar $(basename "${forgeJar}") nogui
|
|
||||||
EOF
|
|
||||||
chmod +x "${FTB_BASE_DIR}/ServerStart.sh"
|
|
||||||
else
|
|
||||||
log "Please make sure you are using the server version of the FTB modpack!"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
scriptCount=$(find "${FTB_BASE_DIR}" $entryScriptExpr | wc -l)
|
|
||||||
if [[ $scriptCount = 0 ]]; then
|
|
||||||
log "Please make sure you are using the server version of the FTB modpack!"
|
|
||||||
exit 2
|
|
||||||
elif [[ $scriptCount > 1 ]]; then
|
|
||||||
log "Ambigous startup scripts in FTB modpack!"
|
|
||||||
log "found:"
|
|
||||||
find ${FTB_BASE_DIR} $entryScriptExpr
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
export FTB_SERVER_START=$(find "${FTB_BASE_DIR}" $entryScriptExpr)
|
|
||||||
|
|
||||||
export FTB_DIR=$(dirname "${FTB_SERVER_START}")
|
|
||||||
chmod a+x "${FTB_SERVER_START}"
|
|
||||||
grep fml.queryResult=confirm ${FTB_SERVER_START} > /dev/null || \
|
|
||||||
sed -i 's/-jar/-Dfml.queryResult=confirm -jar/' "${FTB_SERVER_START}"
|
|
||||||
sed -i 's/.*read.*Restart now/#\0/' "${FTB_SERVER_START}"
|
|
||||||
legacyJavaFixerPath="${FTB_DIR}/mods/legacyjavafixer.jar"
|
|
||||||
|
|
||||||
if isTrue ${FTB_LEGACYJAVAFIXER} && [ ! -e "${legacyJavaFixerPath}" ]; then
|
|
||||||
log "Installing legacy java fixer to ${legacyJavaFixerPath}"
|
|
||||||
curl -sSL -o "${legacyJavaFixerPath}" ${legacyJavaFixerUrl}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "${FTB_DIR}/FTBInstall.sh" ]; then
|
|
||||||
pushd "${FTB_DIR}"
|
|
||||||
sh FTBInstall.sh
|
|
||||||
popd
|
|
||||||
elif [ -e "${FTB_DIR}/Install.sh" ]; then
|
|
||||||
pushd "${FTB_DIR}"
|
|
||||||
sh Install.sh
|
|
||||||
popd
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
export TYPE=FABRIC
|
export TYPE=FABRIC
|
||||||
|
|
||||||
@@ -75,4 +75,4 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Contineut to Final Setup
|
# Contineut to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
export TYPE=FORGE
|
export TYPE=FORGE
|
||||||
|
|
||||||
@@ -113,4 +113,4 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
: ${PAPERBUILD:=latest}
|
: ${PAPERBUILD:=latest}
|
||||||
export SERVER=paper_server-${VANILLA_VERSION}-${PAPERBUILD}.jar
|
export SERVER=paper_server-${VANILLA_VERSION}-${PAPERBUILD}.jar
|
||||||
@@ -20,4 +20,4 @@ export TYPE=SPIGOT
|
|||||||
export SKIP_LOG4J_CONFIG=true
|
export SKIP_LOG4J_CONFIG=true
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
export TYPE=spongevanilla
|
export TYPE=spongevanilla
|
||||||
|
|
||||||
@@ -36,4 +36,4 @@ if [ ! -e $SERVER ] || [ -n "$FORCE_REDOWNLOAD" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
if [ "${VERSION}" != "LATEST" ]; then
|
if [ "${VERSION}" != "LATEST" ]; then
|
||||||
log "ERROR: Tunity server type only supports VERSION=LATEST"
|
log "ERROR: Tunity server type only supports VERSION=LATEST"
|
||||||
@@ -24,4 +24,4 @@ fi
|
|||||||
export TYPE=SPIGOT
|
export TYPE=SPIGOT
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
@@ -43,4 +43,4 @@ fi
|
|||||||
isDebugging && ls -l
|
isDebugging && ls -l
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
set -e
|
set -e
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
@@ -51,4 +51,4 @@ if [[ "$WORLD" ]] && [ ! -d "$worldDest" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /start-finalSetup02Modpack $@
|
exec ${SCRIPTS:-/}start-finalSetup02Modpack $@
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
# CURSE_URL_BASE used in manifest downloads below
|
# CURSE_URL_BASE used in manifest downloads below
|
||||||
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
|
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
|
||||||
@@ -154,4 +154,4 @@ if [[ "${GENERIC_PACK}" ]]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /start-finalSetup03Modconfig $@
|
exec ${SCRIPTS:-/}start-finalSetup03Modconfig $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
# If supplied with a URL for a config (simple zip of configurations), download it and unpack
|
# If supplied with a URL for a config (simple zip of configurations), download it and unpack
|
||||||
if [[ "$MODCONFIG" ]]; then
|
if [[ "$MODCONFIG" ]]; then
|
||||||
@@ -24,4 +24,4 @@ case "X$MODCONFIG" in
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /start-finalSetup04ServerProperties $@
|
exec ${SCRIPTS:-/}start-finalSetup04ServerProperties $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
# FUNCTIONS
|
# FUNCTIONS
|
||||||
function setServerProp {
|
function setServerProp {
|
||||||
@@ -194,4 +194,4 @@ if isDebugging; then
|
|||||||
cat /data/server.properties
|
cat /data/server.properties
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /start-finalSetup05EnvVariables $@
|
exec ${SCRIPTS:-/}start-finalSetup05EnvVariables $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
if [ "${REPLACE_ENV_VARIABLES^^}" = "TRUE" ]; then
|
if [ "${REPLACE_ENV_VARIABLES^^}" = "TRUE" ]; then
|
||||||
log "Replacing env variables in configs that match the prefix $ENV_VARIABLE_PREFIX..."
|
log "Replacing env variables in configs that match the prefix $ENV_VARIABLE_PREFIX..."
|
||||||
@@ -25,4 +25,4 @@ if [ "${REPLACE_ENV_VARIABLES^^}" = "TRUE" ]; then
|
|||||||
done < <(env)
|
done < <(env)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec /start-minecraftFinalSetup $@
|
exec ${SCRIPTS:-/}start-minecraftFinalSetup $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
export SERVER="/data/magma-server-${VANILLA_VERSION}.jar"
|
export SERVER="/data/magma-server-${VANILLA_VERSION}.jar"
|
||||||
|
|
||||||
@@ -15,4 +15,4 @@ fi
|
|||||||
export SKIP_LOG4J_CONFIG=true
|
export SKIP_LOG4J_CONFIG=true
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World $@
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
if [ -n "$OPS" ]; then
|
if [ -n "$OPS" ]; then
|
||||||
log "Setting/adding ops"
|
log "Setting/adding ops"
|
||||||
@@ -179,7 +179,7 @@ if [[ ${TYPE} == "CURSE_INSTANCE" ]]; then
|
|||||||
exec mc-server-runner ${mcServerRunnerArgs} \
|
exec mc-server-runner ${mcServerRunnerArgs} \
|
||||||
--cf-instance-file "${CURSE_INSTANCE_JSON}" \
|
--cf-instance-file "${CURSE_INSTANCE_JSON}" \
|
||||||
java $JVM_XX_OPTS $JVM_OPTS $expandedDOpts -jar _SERVERJAR_ "$@" $EXTRA_ARGS
|
java $JVM_XX_OPTS $JVM_OPTS $expandedDOpts -jar _SERVERJAR_ "$@" $EXTRA_ARGS
|
||||||
elif [[ ${TYPE} == "FEED-THE-BEAST" ]]; then
|
elif [[ ${TYPE} == "CURSEFORGE" ]]; then
|
||||||
mcServerRunnerArgs="${mcServerRunnerArgs} --shell bash"
|
mcServerRunnerArgs="${mcServerRunnerArgs} --shell bash"
|
||||||
|
|
||||||
if [ ! -e "${FTB_DIR}/ops.json" -a -e /data/ops.txt ]; then
|
if [ ! -e "${FTB_DIR}/ops.json" -a -e /data/ops.txt ]; then
|
||||||
|
|||||||
40
start-mohist
Executable file
40
start-mohist
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
requireVar VANILLA_VERSION
|
||||||
|
set -o pipefail
|
||||||
|
set -e
|
||||||
|
isDebugging && set -x
|
||||||
|
|
||||||
|
mohistJobs=https://ci.codemc.io/job/Mohist-Community/job/
|
||||||
|
mohistJob=${mohistJobs}Mohist-${VANILLA_VERSION}/
|
||||||
|
|
||||||
|
if ! curl -X HEAD -o /dev/null -fsSL "${mohistJob}"; then
|
||||||
|
log "ERROR: mohist builds do not exist for ${VANILLA_VERSION}"
|
||||||
|
log " check https://ci.codemc.io/job/Mohist-Community/ for available versions"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
latestBuildRelPath=$(
|
||||||
|
curl -fsSL "${mohistJob}lastSuccessfulBuild/api/json" |
|
||||||
|
jq -r '.artifacts[0].relativePath'
|
||||||
|
)
|
||||||
|
|
||||||
|
baseName=$(basename "${latestBuildRelPath}")
|
||||||
|
if [[ ${baseName} != *-server.jar* ]]; then
|
||||||
|
log "ERROR: mohist build for ${VANILLA_VERSION} is not a valid server jar, found ${baseName}"
|
||||||
|
log " check https://ci.codemc.io/job/Mohist-Community/ for available versions"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
export SERVER="/data/${baseName}"
|
||||||
|
|
||||||
|
if [ ! -f ${SERVER} ]; then
|
||||||
|
log "Downloading ${SERVER}"
|
||||||
|
curl -o "${SERVER}" -fsSL "${mohistJob}lastSuccessfulBuild/artifact/${latestBuildRelPath}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export SKIP_LOG4J_CONFIG=true
|
||||||
|
|
||||||
|
# Continue to Final Setup
|
||||||
|
exec ${SCRIPTS:-/}start-finalSetup01World $@
|
||||||
@@ -100,3 +100,10 @@ function versionLessThan {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
requireVar() {
|
||||||
|
if [ ! -v $1 ]; then
|
||||||
|
log "ERROR: $1 is required to be set"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. /start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
if ! [[ -v CURSE_INSTANCE_JSON ]]; then
|
if ! [[ -v CURSE_INSTANCE_JSON ]]; then
|
||||||
log "ERROR: CURSE_INSTANCE_JSON needs to be set"
|
log "ERROR: CURSE_INSTANCE_JSON needs to be set"
|
||||||
@@ -15,4 +15,4 @@ fi
|
|||||||
log "Resolved CURSE_INSTANCE_JSON as ${CURSE_INSTANCE_JSON}"
|
log "Resolved CURSE_INSTANCE_JSON as ${CURSE_INSTANCE_JSON}"
|
||||||
|
|
||||||
# Continue to Final Setup
|
# Continue to Final Setup
|
||||||
exec /start-finalSetup01World "$@"
|
exec ${SCRIPTS:-/}start-finalSetup01World "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user