#!/bin/bash
# Copyright (c) 2011 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

readonly SCRIPT_DIR="$(dirname "$0")"
readonly SCRIPT_DIR_ABS="$(cd "${SCRIPT_DIR}" ; pwd)"

# Use the batch file as an entry point if on cygwin.
if [ "x${OSTYPE}" = "xcygwin" ]; then
  # Use extended globbing (cygwin should always have it).
  shopt -s extglob
  # Filter out cygwin python (everything under /usr or /bin, or *cygwin*).
  export PATH=${PATH/#\/bin*([^:])/}
  export PATH=${PATH//:\/bin*([^:])/}
  export PATH=${PATH/#\/usr*([^:])/}
  export PATH=${PATH//:\/usr*([^:])/}
  export PATH=${PATH/#*([^:])cygwin*([^:])/}
  export PATH=${PATH//:*([^:])cygwin*([^:])/}
  "${SCRIPT_DIR_ABS}/scons.bat" "$@"
  exit
fi

readonly BASE_SCRIPT="${SCRIPT_DIR_ABS}/scons.py"

python "${BASE_SCRIPT}" "$@"

