1cabdff1aSopenharmony_ci#!/bin/sh
2cabdff1aSopenharmony_ci
3cabdff1aSopenharmony_ciset -e
4cabdff1aSopenharmony_ci
5cabdff1aSopenharmony_ciif test "bisect-create" = "`basename $0`" ; then
6cabdff1aSopenharmony_ci    echo tools/ffbisect created
7cabdff1aSopenharmony_ci    git show master:tools/bisect-create > tools/ffbisect
8cabdff1aSopenharmony_ci    chmod u+x tools/ffbisect
9cabdff1aSopenharmony_ci    exit 1
10cabdff1aSopenharmony_cifi
11cabdff1aSopenharmony_ci
12cabdff1aSopenharmony_ciif ! git show master:tools/bisect-create | diff - tools/ffbisect > /dev/null ; then
13cabdff1aSopenharmony_ci    echo updating tools/ffbisect script to HEAD.
14cabdff1aSopenharmony_ci    git show master:tools/bisect-create > tools/ffbisect
15cabdff1aSopenharmony_ci    chmod u+x tools/ffbisect
16cabdff1aSopenharmony_ci    tools/ffbisect $*
17cabdff1aSopenharmony_ci    exit 0
18cabdff1aSopenharmony_cifi
19cabdff1aSopenharmony_ci
20cabdff1aSopenharmony_cicase "$1" in
21cabdff1aSopenharmony_ci    need)
22cabdff1aSopenharmony_ci        case $2 in
23cabdff1aSopenharmony_ci            ffmpeg|ffplay|ffprobe)
24cabdff1aSopenharmony_ci                echo $2.c >> tools/bisect.need
25cabdff1aSopenharmony_ci            ;;
26cabdff1aSopenharmony_ci        esac
27cabdff1aSopenharmony_ci    ;;
28cabdff1aSopenharmony_ci    start|reset)
29cabdff1aSopenharmony_ci        echo . > tools/bisect.need
30cabdff1aSopenharmony_ci        git bisect $*
31cabdff1aSopenharmony_ci    ;;
32cabdff1aSopenharmony_ci    skip)
33cabdff1aSopenharmony_ci        git bisect $*
34cabdff1aSopenharmony_ci    ;;
35cabdff1aSopenharmony_ci    good|bad)
36cabdff1aSopenharmony_ci        git bisect $*
37cabdff1aSopenharmony_ci
38cabdff1aSopenharmony_ci        until ls `cat tools/bisect.need` > /dev/null 2> /dev/null; do
39cabdff1aSopenharmony_ci            git bisect skip || break
40cabdff1aSopenharmony_ci        done
41cabdff1aSopenharmony_ci    ;;
42cabdff1aSopenharmony_ci    run)
43cabdff1aSopenharmony_ci       shift # remove "run" from arguments
44cabdff1aSopenharmony_ci       git bisect run sh -c "ls \`cat tools/bisect.need\` > /dev/null 2> /dev/null || exit 125; \"\$@\"" sh "$@"
45cabdff1aSopenharmony_ci    ;;
46cabdff1aSopenharmony_ciesac
47