Files
2023-12-30 12:06:59 +01:00

50 lines
1.3 KiB
Plaintext
Executable File

#!/usr/bin/with-contenv bash
set -e
RUST_BINS_PATH="/rust-bins"
ALPINE_RELEASE_PATH="/etc/alpine-release"
PACKAGES_TO_INSTALL_LIST="/mod-repo-packages-to-install.list"
ARCH=$(uname -m)
SUPPORTED_ARCHS=("x86_64" "aarch64")
if [[ ! " ${SUPPORTED_ARCHS[@]} " =~ " ${ARCH} " ]]; then
echo "+++ unsupported architecture: $ARCH +++"
exit 1
fi
MUSL_OR_GNU=$(ldd /bin/sh | grep -q musl && echo "musl" || echo "gnu")
RUST_BINARY_ARCHIVE_PATH="$RUST_BINS_PATH/rust-$ARCH-$MUSL_OR_GNU.tar.gz"
grep_os_release() {
grep -q "$1" /etc/os-release && echo true || echo false
}
if [[ -f "$RUST_BINARY_ARCHIVE_PATH" ]]; then
echo "+++ unpacking rust tar +++"
tar -xzf "$RUST_BINARY_ARCHIVE_PATH" -C "$RUST_BINS_PATH" --strip-components=1
if [[ -f "$ALPINE_RELEASE_PATH" ]]; then
# in alpine ldconfig requires the configuration directory
sed -i 's/ldconfig/ldconfig \/etc\/ld.so.conf.d/g' "$RUST_BINS_PATH/install.sh"
fi
echo "+++ installing rust +++"
"$RUST_BINS_PATH/install.sh"
rm -rf "$RUST_BINS_PATH"
echo "+++ adding build tools +++"
if grep_os_release "debian"; then
echo "build-essential" >>"$PACKAGES_TO_INSTALL_LIST"
elif grep_os_release "alpine"; then
echo "build-base" >>"$PACKAGES_TO_INSTALL_LIST"
else
echo "gcc" >>"$PACKAGES_TO_INSTALL_LIST"
fi
else
echo "+++ rust tar not found +++"
fi