summaryrefslogtreecommitdiff
path: root/nss/fuzz/config/git-copy.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nss/fuzz/config/git-copy.sh')
-rwxr-xr-xnss/fuzz/config/git-copy.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/nss/fuzz/config/git-copy.sh b/nss/fuzz/config/git-copy.sh
new file mode 100755
index 0000000..1389dda
--- /dev/null
+++ b/nss/fuzz/config/git-copy.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+if [ $# -lt 3 ]; then
+ echo "Usage: $0 <repo> <branch> <directory>" 1>&2
+ exit 2
+fi
+
+REPO=$1
+COMMIT=$2
+DIR=$3
+
+echo "Copy '$COMMIT' from '$REPO' to '$DIR'"
+if [ -f $DIR/.git-copy ]; then
+ CURRENT=$(cat $DIR/.git-copy)
+ if [ $(echo -n $COMMIT | wc -c) != "40" ]; then
+ ACTUAL=$(git ls-remote $REPO $COMMIT | cut -c 1-40 -)
+ else
+ ACTUAL=$COMMIT
+ fi
+ if [ CURRENT = ACTUAL ]; then
+ echo "Up to date."
+ fi
+fi
+
+mkdir -p $DIR
+git -C $DIR init -q
+git -C $DIR fetch -q --depth=1 $REPO $COMMIT:git-copy-tmp
+git -C $DIR reset --hard git-copy-tmp
+git -C $DIR show-ref HEAD | cut -c 1-40 - > $DIR/.git-copy
+rm -rf $DIR/.git