#!/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.


# 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
$command
if [ $? -eq 0 ]; then
  if [ "$NINJA_SUMMARIZE_BUILD" == "1" ]; then
    python $(dirname -- "$0")/post_build_ninja_summary.py $@
  fi
  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

