47 lines
951 B
Bash
Executable file
47 lines
951 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
set | grep INPUT_ARGS
|
|
echo "INPUT_ARGS: ${INPUT_ARGS}"
|
|
|
|
# split input into an array
|
|
read -ra ARGS <<<"${INPUT_ARGS}"
|
|
|
|
# default toolchain
|
|
TOOLCHAIN="stable"
|
|
echo "Default toolchain: ${TOOLCHAIN}"
|
|
|
|
# if first parameter is 'nightly'...
|
|
if test "${ARGS[0]}" == "nightly"; then
|
|
TOOLCHAIN="nightly"
|
|
ARGS=("${ARGS[@]:1}")
|
|
fi
|
|
if test "${ARGS[0]}" == "stable"; then
|
|
TOOLCHAIN="stable" # redundant as this is the default
|
|
ARGS=("${ARGS[@]:1}")
|
|
fi
|
|
if [[ "${ARGS[0]}" == v1* ]]; then
|
|
TOOLCHAIN="${ARGS[0]:1}"
|
|
ARGS=("${ARGS[@]:1}")
|
|
fi
|
|
echo "Selected toolchain: ${TOOLCHAIN}"
|
|
|
|
rustup update "${TOOLCHAIN}"
|
|
|
|
if test "${ARGS[0]}" == "cargo";then
|
|
PRE_COMMAND="cargo +${TOOLCHAIN} "
|
|
else
|
|
PRE_COMMAND="${ARGS[0]}"
|
|
fi
|
|
ARGS=("${ARGS[@]:1}")
|
|
|
|
# ensure toolchain is up-to-date
|
|
# recombine remaining arguments
|
|
COMMAND=$(
|
|
IFS=" "
|
|
echo "${ARGS[*]}"
|
|
)
|
|
|
|
# execute command
|
|
echo "${PRE_COMMAND} ${COMMAND}"
|
|
${PRE_COMMAND} ${COMMAND}
|