mirror of
https://github.com/hcengineering/platform.git
synced 2024-12-27 05:23:11 +03:00
199fb0f7f4
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
44 lines
941 B
Bash
Executable File
44 lines
941 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
FILES=$(git diff origin/main --name-only --diff-filter=ACMR | sed 's| |\\ |g')
|
|
[ -z "$FILES" ] && exit 0
|
|
|
|
roots=$(rush list -p --json | grep "path" | cut -f 2 -d ':' | cut -f 2 -d '"')
|
|
|
|
declare -a changed_roots
|
|
|
|
pushd () {
|
|
command pushd "$@" > /dev/null
|
|
}
|
|
|
|
popd () {
|
|
command popd "$@" > /dev/null
|
|
}
|
|
|
|
if [ -n "$FILES" ]; then
|
|
for file in $FILES; do
|
|
# Match file to root
|
|
for r in $roots; do
|
|
if [[ "$file" == ${r}* ]]; then
|
|
echo -e "${file}"
|
|
if [[ ! " ${changed_roots[@]} " =~ " ${r} " ]]; then
|
|
changed_roots+=("$r")
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
for value in "${changed_roots[@]}"; do
|
|
echo -e "\033[0;34mProcessing \033[0;31m${value}\033[0m"
|
|
exec 3>&1
|
|
exec 1> >(paste /dev/null -)
|
|
pushd $value > /dev/null
|
|
$@
|
|
retVal=$?
|
|
if [ $retVal -ne 0 ]; then
|
|
echo "Error"
|
|
exit 1
|
|
fi
|
|
popd > /dev/null
|
|
exec 1>&3 3>&-
|
|
done
|
|
fi |