c07394cf66
Some notes: * failures are hard to deal with if so many installs are behind narrowly scoped checks. This should be improved. for instance rustup failing meant it never ran again. even if you fixed the cause. * you have to install the 64 bit version of openssl too or pkg-config can't find it. * rustup was not in path * setting a target changes the path the .so is dumped out to. I don't care how ugly and bad this is, this is likely what will get used in production unless somebody hands me a better working version. side-note: move to debian based docker images when?
67 lines
1.7 KiB
Bash
Executable File
67 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# REPO MAINTAINERS: KEEP CHANGES TO THIS IN SYNC WITH /tools/LinuxOneShot/SetupProgram/PreCompile.sh
|
|
# No ~mso
|
|
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"
|
|
|
|
#find out what we have (+e is important for this)
|
|
set +e
|
|
has_git="$(command -v git)"
|
|
has_cargo="$(command -v ~/.cargo/bin/cargo)"
|
|
has_sudo="$(command -v sudo)"
|
|
has_grep="$(command -v grep)"
|
|
set -e
|
|
|
|
# install cargo if needful
|
|
if ! [ -x "$has_cargo" ]; then
|
|
echo "Installing rust..."
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
. ~/.profile
|
|
fi
|
|
|
|
# apt packages, libssl needed by rust-g but not included in TGS barebones install
|
|
if ! ( [ -x "$has_git" ] && [ -x "$has_grep" ] && [ -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 git libssl-dev:i386
|
|
rm -rf /var/lib/apt/lists/*
|
|
else
|
|
sudo dpkg --add-architecture i386
|
|
sudo apt-get update
|
|
sudo apt-get install -y git libssl-dev:i386
|
|
sudo rm -rf /var/lib/apt/lists/*
|
|
fi
|
|
fi
|
|
dpkg --add-architecture i386
|
|
apt-get update
|
|
#apt-get upgrade -y
|
|
apt-get install -y lib32z1 pkg-config libssl-dev:i386 libssl-dev
|
|
#update rust-g
|
|
if [ ! -d "rust-g" ]; then
|
|
echo "Cloning rust-g..."
|
|
git clone https://github.com/tgstation/rust-g
|
|
cd rust-g
|
|
~/.cargo/bin/rustup target add i686-unknown-linux-gnu
|
|
else
|
|
echo "Fetching rust-g..."
|
|
cd rust-g
|
|
git fetch
|
|
~/.cargo/bin/rustup target add i686-unknown-linux-gnu
|
|
fi
|
|
|
|
echo "Deploying rust-g..."
|
|
git checkout "$RUST_G_VERSION"
|
|
~/.cargo/bin/cargo build --release --target=i686-unknown-linux-gnu
|
|
mv target/i686-unknown-linux-gnu/release/librust_g.so "$1/rust_g"
|
|
cd ..
|