Files
fst_data_pipeline-feature-e…/code_format_all.sh

52 lines
2.0 KiB
Bash
Raw Normal View History

2026-04-16 15:44:32 +08:00
#!/usr/bin/env bash
set -euo pipefail
current_dir=$(dirname "$0")
cd "${current_dir}" || exit
docker_version=$(docker -v | awk '{print $3}')
required_docker_version="24.0.2"
if [ "$(printf '%s\n' "$docker_version" "$required_docker_version" | sort -V | head -n1)" = "$docker_version" ]; then
echo "Error: Docker version $docker_version is less than ${required_docker_version}"
echo "Run 'sudo apt update && sudo apt upgrade docker -y' to upgrade docker to latest version"
exit 1
fi
format_src=./
all_args=$*
proxy="http://smtcig000004.cnrd.corpintra.net:3128/"
while [ $# -gt 0 ]; do
case "$1" in
--proxy=*) proxy="${1#*=}" ;;
esac
shift
done
if [ -z "${proxy+x}" ] && [ -n "$http_proxy" ]; then
proxy=${http_proxy}
fi
docker_build_http_proxy=
docker_run_http_proxy=
if [ -n "$proxy" ]; then
docker_build_http_proxy="--build-arg HTTP_PROXY=${proxy} --build-arg HTTPS_PROXY=${proxy} --build-arg http_proxy=${proxy} --build-arg https_proxy=${proxy}"
docker_run_http_proxy="--env HTTP_PROXY=${proxy} --env HTTPS_PROXY=${proxy} --env http_proxy=${proxy} --env https_proxy=${proxy}"
fi
IMAGE_WITH_TAG=$(python3 -c 'import yaml; print(yaml.safe_load(open("./infra/tencent/docker_ci/docker-compose.yaml"))["services"]["python-format"]["image"])')
if ! docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "$IMAGE_WITH_TAG"; then
echo "Image $IMAGE_WITH_TAG does not exist. Building the image..."
cmd="docker compose -f ./infra/tencent/docker_ci/docker-compose.yaml build ${docker_build_http_proxy} python-format"
echo "${cmd}"
eval "${cmd}"
fi
cmd="docker compose -f ./infra/tencent/docker_ci/docker-compose.yaml run ${docker_run_http_proxy} -u"$(id -u):$(id -g)" --rm --entrypoint=./infra/tencent/docker_ci/entrypoint_python_format.sh python-format --format-all --no-lint"
cmd="docker compose -f ./infra/tencent/docker_ci/docker-compose.yaml run ${docker_run_http_proxy} -u"$(id -u):$(id -g)" --rm --entrypoint=./infra/tencent/docker_ci/entrypoint_python_format.sh python-format --check --no-lint"
echo "${cmd}"
eval "${cmd}"