#!/usr/bin/env bash

# Copyright (c) 2017 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Set unique build ID.
AUTONINJA_BUILD_ID="$(python -c "import uuid; print uuid.uuid4()")"
export AUTONINJA_BUILD_ID

# Execute whatever is printed by autoninja.py.
# Also print it to reassure that the right settings are being used.
command=$(python "$(dirname -- "$0")/autoninja.py" "$@")
echo "$command"
if eval "$command"; then
  if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
    python "$(dirname -- "$0")/post_build_ninja_summary.py" "$@"
  fi

  # Collect ninjalog from googler.
  "$(dirname -- "$0")/ninjalog_uploader_wrapper.py" --cmd $command
  exit
fi
# Return an error code of 1 so that if a developer types:
# "autoninja chrome && chrome" then chrome won't run if the build fails.
exit 1
