forked from ParadiseSS13/Paradise
-
Notifications
You must be signed in to change notification settings - Fork 124
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feat: auto rustg buildd in tgs (#256)
- Loading branch information
Showing
4 changed files
with
102 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
#!/bin/bash | ||
|
||
#find out what we have (+e is important for this) | ||
set +e | ||
has_git="$(command -v git)" | ||
has_curl="$(command -v curl)" | ||
has_cargo="$(command -v ~/.cargo/bin/cargo)" | ||
has_sudo="$(command -v sudo)" | ||
has_youtubedl="$(command -v youtube-dl)" | ||
has_pip3="$(command -v pip3)" | ||
set -e | ||
set -x | ||
|
||
# apt packages, libssl needed by rust-g but not included in TGS barebones install | ||
if ! ( [ -x "$has_git" ] && [ -x "$has_curl" ] && [ -f "/usr/lib/i386-linux-gnu/libssl.so" ] ); then | ||
echo "Installing apt dependencies..." | ||
if ! [ -x "$has_sudo" ]; then | ||
dpkg --add-architecture i386 | ||
apt-get update | ||
apt-get install -y lib32z1 git pkg-config libssl-dev:i386 libssl-dev zlib1g-dev:i386 curl | ||
else | ||
sudo dpkg --add-architecture i386 | ||
sudo apt-get update | ||
sudo apt-get install -y lib32z1 git pkg-config libssl-dev:i386 libssl-dev zlib1g-dev:i386 curl | ||
fi | ||
fi | ||
|
||
# install cargo if needed | ||
if ! [ -x "$has_cargo" ]; then | ||
echo "Installing rust..." | ||
curl https://sh.rustup.rs -sSf | sh -s -- -y | ||
. ~/.profile | ||
fi | ||
|
||
# install or update youtube-dl when not present, or if it is present with pip3, | ||
# which we assume was used to install it | ||
if ! [ -x "$has_youtubedl" ]; then | ||
echo "Installing youtube-dl with pip3..." | ||
if ! [ -x "$has_sudo" ]; then | ||
apt-get update | ||
apt-get install -y python3 python3-pip | ||
else | ||
sudo apt-get update | ||
sudo apt-get install -y python3 python3-pip | ||
fi | ||
pip3 install youtube-dl | ||
elif [ -x "$has_pip3" ]; then | ||
echo "Ensuring youtube-dl is up-to-date with pip3..." | ||
pip3 install youtube-dl -U | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#!/bin/bash | ||
|
||
./InstallDeps.sh | ||
|
||
set -e | ||
set -x | ||
|
||
# Load dep exports | ||
# Need to switch to game dir for Dockerfile weirdness | ||
original_dir=$PWD | ||
cd "$1" | ||
. dependencies.sh | ||
cd "$original_dir" | ||
|
||
|
||
# update rust-g | ||
if [ ! -d "rust-g-tg" ]; then | ||
echo "Cloning rust-g..." | ||
git clone https://github.com/ss220-space/rust-g-tg # Aziz one | ||
cd rust-g-tg | ||
~/.cargo/bin/rustup target add i686-unknown-linux-gnu | ||
else | ||
echo "Fetching rust-g..." | ||
cd rust-g-tg | ||
git fetch | ||
~/.cargo/bin/rustup target add i686-unknown-linux-gnu | ||
fi | ||
|
||
echo "Deploying rust-g..." | ||
git checkout "$RUST_G_VERSION" | ||
RUSTFLAGS="-C target-cpu=native" | ||
env PKG_CONFIG_ALLOW_CROSS=1 ~/.cargo/bin/cargo build --release --features all --target=i686-unknown-linux-gnu | ||
mv target/i686-unknown-linux-gnu/release/librust_g_ss220.so "$1/librust_g_ss220.so" | ||
cd .. | ||
|
||
# SS220 TODO: #22629 tg like compile tgui | ||
# compile tgui | ||
# echo "Compiling tgui..." | ||
# cd "$1" | ||
# env TG_BOOTSTRAP_CACHE="$original_dir" TG_BOOTSTRAP_NODE_LINUX=1 CBT_BUILD_MODE="TGS" tools/bootstrap/node tools/build/build.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#!/bin/bash | ||
|
||
# Special file to ensure all dependencies still exist between server launches. | ||
# Mainly for use by people who abuse docker by modifying the container's system. | ||
|
||
./InstallDeps.sh |