aboutsummaryrefslogtreecommitdiff
path: root/local/bin
diff options
context:
space:
mode:
Diffstat (limited to 'local/bin')
-rwxr-xr-xlocal/bin/project-test43
1 files changed, 43 insertions, 0 deletions
diff --git a/local/bin/project-test b/local/bin/project-test
new file mode 100755
index 0000000..a0591d8
--- /dev/null
+++ b/local/bin/project-test
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Executes given command on all commits from current one to given one.
+set -e
+
+print_help() {
+ echo "Executes given command for each commit. In default it executes"
+ echo "for 10 previous commands."
+ echo
+ echo "Usage: project-test [OPTION...] [--] COMMAND"
+ echo " -r,--ref [REF]"
+ echo " Git reference to go to"
+ echo " -c,--count [COUNT]"
+ echo " Tests given count of references back from current one."
+}
+
+while [ -n "$1" ]; do
+ case $1 in
+ -r|--ref)
+ shift
+ REF=$1
+ ;;
+ -c|--count)
+ shift
+ REF=HEAD~$1
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ break
+ ;;
+ esac
+ shift
+done
+
+[ -n "$REF" ] || REF=HEAD~10
+
+while read -r rev; do
+ git checkout "$rev"
+ git submodule update
+ eval $@
+done < <(git rev-list "$REF"..HEAD)