Make autoninja.py work again w/ Python3 and MSYS/MinGW bash.

We switched autoninja.py to python3 in https://crrev.com/c/2752772
but that assumes `python3` is in $PATH (which is likely true on
Mac and Linux but less likely to be true on Windows, especially
in MSYS/MinGW/git bash shells.

It's safer to use the `python3` bundled into depot_tools in
`$depot_tools/python-bin` and more hermetic to boot.

Bug: 1187609
Change-Id: I65efd1a2b87135ac4e25ba377309c3374cfda085
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2756889
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@google.com>
changes/89/2756889/2
Dirk Pranke 4 years ago committed by LUCI CQ
parent bd1729d959
commit 9e2dfdcc82

@ -4,8 +4,11 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
depot_tools=$(dirname "$0")
python3="$depot_tools/python-bin/python3"
# Set unique build ID. # Set unique build ID.
AUTONINJA_BUILD_ID="$(python3 -c "import uuid; print(uuid.uuid4())")" AUTONINJA_BUILD_ID="$($python3 -c "import uuid; print(uuid.uuid4())")"
export AUTONINJA_BUILD_ID export AUTONINJA_BUILD_ID
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
@ -14,23 +17,22 @@ fi
# Execute whatever is printed by autoninja.py. # Execute whatever is printed by autoninja.py.
# Also print it to reassure that the right settings are being used. # Also print it to reassure that the right settings are being used.
# Don't use python3 because it doesn't work in git bash on Windows. command=$($python3 "$depot_tools/autoninja.py" "$@")
command=$(python "$(dirname -- "$0")/autoninja.py" "$@")
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
echo "$command" echo "$command"
fi fi
if eval "$command"; then if eval "$command"; then
if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
python3 "$(dirname -- "$0")/post_build_ninja_summary.py" "$@" $python3 "$depot_tools/post_build_ninja_summary.py" "$@"
fi fi
# Collect ninjalog from googler. # Collect ninjalog from googler.
python3 "$(dirname -- "$0")/ninjalog_uploader_wrapper.py" --cmd $command $python3 "$depot_tools/ninjalog_uploader_wrapper.py" --cmd $command
exit exit
fi fi
# Collect ninjalog from googler. # Collect ninjalog from googler.
python3 "$(dirname -- "$0")/ninjalog_uploader_wrapper.py" --cmd $command $python3 "$depot_tools/ninjalog_uploader_wrapper.py" --cmd $command
# Return an error code of 1 so that if a developer types: # Return an error code of 1 so that if a developer types:
# "autoninja chrome && chrome" then chrome won't run if the build fails. # "autoninja chrome && chrome" then chrome won't run if the build fails.

Loading…
Cancel
Save