build/fmt/run-fmt.sh
Rama master · réplica de lectura del repositorio original.
#!/bin/bash
set -e
pwd=$(pwd)
cd "$(dirname "${BASH_SOURCE[0]}")/../.."
repo_root=$(pwd)
rel_pwd="${pwd#"$repo_root"}"
TOOLCHAIN=$(sed -n 's/^ARG RUSTFMT_TOOLCHAIN=//p' build/fmt/fmtenv.Dockerfile)
if [ "${FMT_NATIVE:-}" = 1 ]; then
exec env RUSTUP_TOOLCHAIN="$TOOLCHAIN" "$@"
fi
platform=linux/amd64
case "$(uname -m)" in
aarch64 | arm64) platform=linux/arm64 ;;
esac
IMAGE=start9/fmt-env
base_image=$(./build/rust-builder/image.sh)
docker buildx build --load --platform="$platform" -t "$IMAGE" \
--build-arg RUST_BUILDER_IMAGE="$base_image" \
-f build/fmt/fmtenv.Dockerfile build/fmt
tty_args=()
if tty -s; then tty_args=(-it); fi
exec docker run "${tty_args[@]}" --platform="$platform" --rm \
--user "$(id -u):$(id -g)" \
-e RUSTUP_TOOLCHAIN="$TOOLCHAIN" \
-v "$repo_root:/workdir" \
-w "/workdir${rel_pwd}" \
"$IMAGE" "$@"