mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 09:02:00 +00:00
38 lines
1.5 KiB
Bash
Executable File
38 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# The script checks if all submodules defined in $GIT_ROOT/.gitmodules exist in $GIT_ROOT/contrib
|
|
|
|
set -e
|
|
|
|
GIT_ROOT="."
|
|
|
|
cd "$GIT_ROOT"
|
|
|
|
# Remove keys for submodule.*.path parameters, the values are separated by \0
|
|
# and check if the directory exists
|
|
git config --file .gitmodules --null --get-regexp path | sed -z 's|.*\n||' | \
|
|
xargs -P100 -0 --no-run-if-empty -I{} bash -c 'if ! test -d '"'{}'"'; then echo Directory for submodule {} is not found; exit 1; fi' 2>&1
|
|
|
|
|
|
# And check that the submodule is fine
|
|
git config --file .gitmodules --null --get-regexp path | sed -z 's|.*\n||' | \
|
|
xargs -P100 -0 --no-run-if-empty -I{} git submodule status -q '{}' 2>&1
|
|
|
|
|
|
# All submodules should be from https://github.com/
|
|
git config --file "$ROOT_PATH/.gitmodules" --get-regexp 'submodule\..+\.url' | \
|
|
while read -r line; do
|
|
name=${line#submodule.}; name=${name%.url*}
|
|
url=${line#* }
|
|
[[ "$url" != 'https://github.com/'* ]] && echo "All submodules should be from https://github.com/, submodule '$name' has '$url'"
|
|
done
|
|
|
|
# All submodules should be of this form: [submodule "contrib/libxyz"] (for consistency, the submodule name does matter too much)
|
|
# - restrict the check to top-level .gitmodules file
|
|
git config --file "$ROOT_PATH/.gitmodules" --get-regexp 'submodule\..+\.path' | \
|
|
while read -r line; do
|
|
name=${line#submodule.}; name=${name%.path*}
|
|
path=${line#* }
|
|
[ "$name" != "$path" ] && echo "Submodule name '$name' is not equal to it's path '$path'"
|
|
done
|