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