141 lines
4.1 KiB
Bash
141 lines
4.1 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
BIN_DIR="$SCRIPT_DIR/.bin"
|
|
SERVER_DIR="$SCRIPT_DIR/server"
|
|
SRC_REF_DIR="$SCRIPT_DIR/src-ref"
|
|
|
|
|
|
# Détection de l'OS
|
|
detect_os() {
|
|
case "$(uname -s)" in
|
|
Linux*) echo "linux-amd64" ;;
|
|
Darwin*) echo "darwin-amd64" ;;
|
|
CYGWIN*|MINGW*|MSYS*) echo "windows-amd64.exe" ;;
|
|
*) echo "unknown" ;;
|
|
esac
|
|
}
|
|
|
|
OS_SUFFIX=$(detect_os)
|
|
if [ "$OS_SUFFIX" = "unknown" ]; then
|
|
echo "Erreur: OS non supporté"
|
|
exit 1
|
|
fi
|
|
|
|
download() {
|
|
mkdir -p "$BIN_DIR"
|
|
|
|
echo "Téléchargement de hytale-downloader..."
|
|
curl -L -o "$BIN_DIR/hytale-downloader.zip" "https://downloader.hytale.com/hytale-downloader.zip"
|
|
unzip -o "$BIN_DIR/hytale-downloader.zip" -d "$BIN_DIR"
|
|
rm "$BIN_DIR/hytale-downloader.zip"
|
|
|
|
echo "Téléchargement de CFR..."
|
|
curl -L -o "$BIN_DIR/cfr-0.152.jar" "https://www.benf.org/other/cfr/cfr-0.152.jar"
|
|
|
|
# Rendre les binaires exécutables
|
|
chmod +x "$BIN_DIR"/hytale-downloader-* 2>/dev/null || true
|
|
|
|
echo "Téléchargement terminé."
|
|
}
|
|
|
|
setup() {
|
|
|
|
DOWNLOADER="$BIN_DIR/hytale-downloader-$OS_SUFFIX"
|
|
if [ ! -f "$DOWNLOADER" ]; then
|
|
echo "Erreur: $DOWNLOADER non trouvé."
|
|
echo "Exécutez d'abord: ./setup.sh --download"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Téléchargement du serveur Hytale..."
|
|
if [ ! -d "$SERVER_DIR" ]; then
|
|
mkdir $SERVER_DIR
|
|
fi
|
|
if [ ! -f "$SERVER_DIR/server.zip" ]; then
|
|
"$DOWNLOADER" --download-path "$SERVER_DIR/server.zip"
|
|
fi
|
|
echo "Décompression de l'archive du serveur Hytale"
|
|
unzip -o "$SERVER_DIR/server.zip" -d "$SERVER_DIR"
|
|
echo "Téléchargement terminée."
|
|
}
|
|
|
|
update_safe() {
|
|
echo "Are you sure ?"
|
|
echo "It will delete the old server/Assets.zip server/server.zip server/Server/* "
|
|
echo "Use ./setup.sh --update-sure"
|
|
}
|
|
|
|
update() {
|
|
DOWNLOADER="$BIN_DIR/hytale-downloader-$OS_SUFFIX"
|
|
echo "Téléchargement du serveur Hytale..."
|
|
if [ ! -d "$SERVER_DIR" ]; then
|
|
mkdir $SERVER_DIR
|
|
fi
|
|
if [ -f "$SERVER_DIR/server.zip" ]; then
|
|
rm $SERVER_DIR/server.zip
|
|
fi
|
|
if [ -f "$SERVER_DIR/Assets.zip" ]; then
|
|
rm $SERVER_DIR/Assets.zip
|
|
fi
|
|
if [ -d "$SERVER_DIR/Server.zip" ]; then
|
|
rm -rf $SERVER_DIR/Server
|
|
fi
|
|
if [ ! -f "$SERVER_DIR/server.zip" ]; then
|
|
"$DOWNLOADER" --download-path "$SERVER_DIR/server.zip"
|
|
fi
|
|
echo "Décompression de l'archive du serveur Hytale"
|
|
unzip -o "$SERVER_DIR/server.zip" -d "$SERVER_DIR"
|
|
echo "Téléchargement terminée."
|
|
}
|
|
|
|
update-pre() {
|
|
DOWNLOADER="$BIN_DIR/hytale-downloader-$OS_SUFFIX"
|
|
echo "Téléchargement du serveur Hytale..."
|
|
if [ ! -d "$SERVER_DIR" ]; then
|
|
mkdir $SERVER_DIR
|
|
fi
|
|
if [ -f "$SERVER_DIR/server.zip" ]; then
|
|
rm $SERVER_DIR/server.zip
|
|
fi
|
|
if [ -f "$SERVER_DIR/Assets.zip" ]; then
|
|
rm $SERVER_DIR/Assets.zip
|
|
fi
|
|
if [ -d "$SERVER_DIR/Server.zip" ]; then
|
|
rm -rf $SERVER_DIR/Server
|
|
fi
|
|
if [ ! -f "$SERVER_DIR/server.zip" ]; then
|
|
"$DOWNLOADER" --download-path "$SERVER_DIR/server.zip" --patchline pre-release
|
|
fi
|
|
echo "Décompression de l'archive du serveur Hytale"
|
|
unzip -o "$SERVER_DIR/server.zip" -d "$SERVER_DIR"
|
|
echo "Téléchargement terminée."
|
|
}
|
|
|
|
decompile() {
|
|
echo "Décompilation avec CFR..."
|
|
rm -rf "$SRC_REF_DIR/*"
|
|
java -jar "$BIN_DIR/cfr-0.152.jar" "$SERVER_DIR/Server/HytaleServer.jar" --outputdir "$SRC_REF_DIR"
|
|
echo "Décompilation terminée."
|
|
}
|
|
|
|
case "$1" in
|
|
--download) download ;;
|
|
--setup) setup ;;
|
|
--decompile)decompile ;;
|
|
--update) update ;;
|
|
--update-pre) update-pre ;;
|
|
*)
|
|
echo "Usage: ./setup.sh [--download|--setup]"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " --download Télécharge les outils (hytale-downloader, CFR)"
|
|
echo " --setup Configure l'environnement (télécharge le serveur)"
|
|
echo " --update Télécharge la mise à jour"
|
|
echo " --update-pre Télécharge la mise à jour pre-release"
|
|
echo " --decompile Décompile le serveur"
|
|
exit 1
|
|
;;
|
|
esac
|