Add script to update external test repo commit pointers

It will prompt to update the file storing the external test repo
commit hash when a change is detected upon running update-changes.
This commit is contained in:
Jon Siwek 2019-04-05 17:06:26 -07:00
parent 23c244d448
commit 9c843a7d83
4 changed files with 56 additions and 11 deletions

View file

@ -7,15 +7,7 @@ function new_version_hook
# test suite repos to check out on a CI system.
version=$1
if [ -d testing/external/zeek-testing ]; then
echo "Updating testing/external/commit-hash.zeek-testing"
( cd testing/external/zeek-testing && git fetch origin && git rev-parse origin/master ) > testing/external/commit-hash.zeek-testing
git add testing/external/commit-hash.zeek-testing
fi
./testing/scripts/update-external-repo-pointer.sh testing/external/zeek-testing testing/external/commit-hash.zeek-testing
if [ -d testing/external/zeek-testing-private ]; then
echo "Updating testing/external/commit-hash.zeek-testing-private"
( cd testing/external/zeek-testing-private && git fetch origin && git rev-parse origin/master ) > testing/external/commit-hash.zeek-testing-private
git add testing/external/commit-hash.zeek-testing-private
fi
./testing/scripts/update-external-repo-pointer.sh testing/external/zeek-testing-private testing/external/commit-hash.zeek-testing-private
}

View file

@ -1,4 +1,8 @@
2.6-205 | 2019-04-05 17:06:26 -0700
* Add script to update external test repo commit pointers (Jon Siwek, Corelight)
2.6-203 | 2019-04-04 16:35:52 -0700
* Update DTLS error handling (Johanna Amann, Corelight)

View file

@ -1 +1 @@
2.6-203
2.6-205

View file

@ -0,0 +1,49 @@
#! /usr/bin/env bash
set -e
if [ $# -ne 2 ]; then
echo "usage: $0 <external repo path> <file to store commit in>"
exit 1
fi
repo_dir=$1
hash_file=$2
repo_base=$(basename $repo_dir)
file_base=$(basename $hash_file)
if [ ! -d "$repo_dir" ]; then
echo "External repo does not exist: $repo_dir"
exit 1
fi
printf "Checking for '$repo_base' changes ..."
origin_hash=$(cd $repo_dir && git fetch origin && git rev-parse origin/master)
head_hash=$(cd $repo_dir && git rev-parse HEAD)
file_hash=$(cat $hash_file)
if [ "$file_hash" != "$head_hash" ]; then
printf "\n"
printf "\n"
printf " '$repo_base' pointer has changed:\n"
line=" $file_base at $file_hash"
len=${#line}
printf "%${len}s\n" "$line"
printf "%${len}s\n" "origin/master at $origin_hash"
printf "%${len}s\n" "HEAD at $head_hash"
printf "\n"
printf "Update file '$file_base' to HEAD commit ? "
read -p "[Y/n] " choice
case "$choice" in
n|N) echo "Skipped '$repo_base'";;
*) echo $head_hash > $hash_file && git add $hash_file && echo "Updated '$file_base'";;
esac
else
echo " none"
fi