yading@11: #!/bin/sh yading@11: yading@11: set -e yading@11: yading@11: if test "bisect-create" = "`basename $0`" ; then yading@11: echo tools/ffbisect created yading@11: git show master:tools/bisect-create > tools/ffbisect yading@11: chmod u+x tools/ffbisect yading@11: exit 1 yading@11: fi yading@11: yading@11: if ! git show master:tools/bisect-create | diff - tools/ffbisect > /dev/null ; then yading@11: echo updating tools/ffbisect script to HEAD. yading@11: git show master:tools/bisect-create > tools/ffbisect yading@11: chmod u+x tools/ffbisect yading@11: tools/ffbisect $* yading@11: exit 0 yading@11: fi yading@11: yading@11: case "$1" in yading@11: need) yading@11: case $2 in yading@11: ffmpeg|ffplay|ffprobe|ffserver) yading@11: echo $2.c >> tools/bisect.need yading@11: ;; yading@11: esac yading@11: ;; yading@11: start|reset) yading@11: echo . > tools/bisect.need yading@11: git bisect $* yading@11: ;; yading@11: skip) yading@11: git bisect $* yading@11: ;; yading@11: good|bad) yading@11: git bisect $* yading@11: yading@11: until ls `cat tools/bisect.need` > /dev/null 2> /dev/null; do yading@11: git bisect skip || break yading@11: done yading@11: ;; yading@11: run) yading@11: shift # remove "run" from arguments yading@11: git bisect run sh -c "ls \`cat tools/bisect.need\` > /dev/null 2> /dev/null || exit 125; \"\$@\"" sh "$@" yading@11: ;; yading@11: esac