PrePush: Add a pre-push warning before committing to locked branches
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#!/bin/sh
|
||||
|
||||
targetRepo="$2"
|
||||
|
||||
remoteRefs=""
|
||||
|
||||
javacPath="$JAVA_HOME/bin/javac"
|
||||
javaPath="$JAVA_HOME/bin/java"
|
||||
|
||||
if [ -f "~/.kotlin-deactivate-prepush-hook" ]; then
|
||||
echo "Pre-commit hook is deactivated"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -f "./libraries/tools/kotlin-prepush-hook/src/KotlinPrePushHook.java" ]; then
|
||||
echo "Pre-commit hook .java file was not found in current branch, pre-push hook is disabled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -f "$javaPath" ]; then
|
||||
echo "'java' ($javaPath) was not found, pre-push hook is disabled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -f "$javacPath" ]; then
|
||||
echo "'javac' ($javacPath) was not found, pre-push hook is disabled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
while read localRef localSha remoteRef remoteSha
|
||||
do
|
||||
# Looks like there're no [[ in Ubuntu by default
|
||||
if [ "$remoteRef" = "refs/heads/rr/"* ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ "$remoteRef" = "refs/heads/rrr/"* ]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -z $remoteRefs ]; then
|
||||
remoteRefs="$remoteRef"
|
||||
else
|
||||
remoteRefs="$remoteRefs,$remoteRef"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ -z "$remoteRefs" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p ./build/prePushHook
|
||||
"$javacPath" -d ./build/prePushHook ./libraries/tools/kotlin-prepush-hook/src/KotlinPrePushHook.java
|
||||
cd ./build/prePushHook
|
||||
|
||||
"$javaPath" KotlinPrePushHook "$remoteRefs" "$targetRepo"
|
||||
returnCode=$?
|
||||
|
||||
cd ../..
|
||||
|
||||
exit $returnCode
|
||||
Reference in New Issue
Block a user