mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 02:41:59 +00:00
37 lines
1.1 KiB
Plaintext
37 lines
1.1 KiB
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
# We check only our code, that's why we skip contrib
|
||
|
GIT_ROOT=$(git rev-parse --show-cdup)
|
||
|
GIT_ROOT=${GIT_ROOT:-./}
|
||
|
tmp=$(mktemp)
|
||
|
|
||
|
# Find all *.py, *.python files and executable files without extension
|
||
|
# that are determined as python scripts by 'file' util
|
||
|
# in the repo except the contrib directory.
|
||
|
find_cmd=(
|
||
|
find "$GIT_ROOT" -type f -not -path "${GIT_ROOT}contrib/*"
|
||
|
\(
|
||
|
\(
|
||
|
-name '*.py' -or -name "*.python" -or
|
||
|
\(
|
||
|
-executable -not -name "*.*" -exec sh -c 'file {} | grep -q "Python script"' \;
|
||
|
\)
|
||
|
\)
|
||
|
# We skip modules generated by the protocol buffer compiler from *.proto files.
|
||
|
-and -not -name '*_pb2.py' -and -not -name '*_pb2_grpc.py'
|
||
|
\)
|
||
|
)
|
||
|
|
||
|
if ! "${find_cmd[@]}" -exec isort --check --diff {} + 1>"$tmp" 2>&1; then
|
||
|
# Show the result only if some files need formatting
|
||
|
cat "$tmp"
|
||
|
# Apply formatting
|
||
|
"${find_cmd[@]}" -exec isort {} + 1>/dev/null 2>&1
|
||
|
# Automatically add changed files to stage
|
||
|
"${find_cmd[@]}" -exec git add -u {} + 1>/dev/null 2>&1
|
||
|
fi
|
||
|
|
||
|
rm "$tmp"
|