| #!/usr/bin/env bash |
| |
| # Copyright 2016 The Fuchsia Authors |
| # |
| # Use of this source code is governed by a MIT-style |
| # license that can be found in the LICENSE file or at |
| # https://opensource.org/licenses/MIT |
| |
| # Use this to use git bisect with prebuilt binary artifacts. To use, first copy the script somewhere |
| # outside of the source tree (so git bisect won't mess with it) then run the following commands: |
| # git bisect start <bad> <good> |
| # git bisect run PATH_TO/bisect-helper <optional additional args to run-zircon> |
| # The script will download the prebuilt zircon.bin associated with each commit, if it exists, and |
| # start it up in qemu. After qemu exits, the script will ask if the build is good or bad. Type 'y' |
| # or 'n' and the bisect will proceed. |
| |
| set -e |
| |
| readonly SCRIPT_DIR="$1" |
| |
| readonly TEMP_DIR="$(mktemp -d)" |
| trap "rm -rf -- "${TEMP_DIR}"" EXIT |
| readonly CURRENT_COMMIT="$(git rev-parse HEAD)" |
| readonly ZIRCON_BIN_URL="https://storage-download.googleapis.com/fuchsia-build/zircon/qemu-arm64/zircon.elf/${CURRENT_COMMIT}" |
| readonly DOWNLOAD_STATUS="$(curl -s -w %{http_code} --progress-bar --output "${TEMP_DIR}/zircon.elf" "${ZIRCON_BIN_URL}")" |
| if [[ "${DOWNLOAD_STATUS}" != 200 ]]; then |
| echo "Could not find prebuilt at ${ZIRCON_BIN_URL}: ${DOWNLOAD_STATUS}" |
| exit 125 # could not evaluate this commit, no prebuilt available |
| fi |
| "${SCRIPT_DIR}/run-zircon-arm64" -o "${TEMP_DIR}" |
| |
| echo "Did it work? y/n" |
| read RESULT |
| if [[ "${RESULT}" == y ]]; then |
| exit 0 |
| else |
| exit 1 |
| fi |