91 lines
1.8 KiB
Bash
Executable File
91 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# IMPORTANT: See
|
|
# https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/ci.html#container-image-version
|
|
|
|
set -o errexit -o pipefail -o noclobber -o nounset
|
|
|
|
source ./ci/env.sh
|
|
|
|
export CARGO_HOME='/usr/local/cargo'
|
|
|
|
PARSED=$(getopt --options '' --longoptions 'rustup-version:,stable:,minimum:,nightly:,arch:' --name "$0" -- "$@")
|
|
eval set -- "$PARSED"
|
|
unset PARSED
|
|
|
|
RUSTUP_VERSION=
|
|
STABLE=
|
|
MINIMUM=
|
|
NIGHTLY=
|
|
ARCH=
|
|
|
|
while true; do
|
|
case "$1" in
|
|
'--rustup-version')
|
|
RUSTUP_VERSION=$2
|
|
shift 2
|
|
;;
|
|
|
|
'--stable')
|
|
STABLE=$2
|
|
shift 2
|
|
;;
|
|
|
|
'--minimum')
|
|
MINIMUM=$2
|
|
shift 2
|
|
;;
|
|
|
|
'--nightly')
|
|
NIGHTLY=$2
|
|
shift 2
|
|
;;
|
|
|
|
'--arch')
|
|
ARCH=$2
|
|
shift 2
|
|
;;
|
|
|
|
'--')
|
|
shift
|
|
break
|
|
;;
|
|
|
|
*)
|
|
echo "Programming error"
|
|
exit 3
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ -z "$RUSTUP_VERSION" ]; then
|
|
echo "missing --rustup-version argument"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$STABLE" ]; then
|
|
echo "missing --stable argument, please pass the stable version of rustc you want"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$ARCH" ]; then
|
|
echo "missing --arch argument, please pass an architecture triple like x86_64-unknown-linux-gnu"
|
|
exit 1
|
|
fi
|
|
|
|
RUSTUP_URL="https://static.rust-lang.org/rustup/archive/$RUSTUP_VERSION/$ARCH/rustup-init"
|
|
wget "$RUSTUP_URL"
|
|
|
|
chmod +x rustup-init
|
|
./rustup-init -y --no-modify-path --profile minimal --default-toolchain "$STABLE"
|
|
rm rustup-init
|
|
chmod -R a+w "$RUSTUP_HOME" "$CARGO_HOME"
|
|
|
|
if [ -n "$MINIMUM" ]; then
|
|
rustup toolchain install "$MINIMUM"
|
|
fi
|
|
|
|
if [ -n "$NIGHTLY" ]; then
|
|
rustup toolchain install "$NIGHTLY"
|
|
fi
|