| #!/bin/bash | |
| # Copyright 2015 The Bazel Authors. All rights reserved. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| case "$0" in | |
| /*) self="$0" ;; | |
| *) self="$PWD/$0";; | |
| esac | |
| if [[ -z "$JAVA_RUNFILES" ]]; then | |
| if [[ -e "${self}.runfiles" ]]; then | |
| JAVA_RUNFILES="${self}.runfiles" | |
| fi | |
| fi | |
| root_path=$(pwd) | |
| tmp_dir=$(mktemp -d ${TMPDIR:-/tmp}/war.XXXXXXXX) | |
| trap "{ cd ${root_path}; rm -rf ${tmp_dir}; }" EXIT | |
| cd ${tmp_dir} | |
| ${JAVA_RUNFILES}/%{zipper} x ${JAVA_RUNFILES}/%{war} | |
| jvm_bin=${JAVA_RUNFILES}/%{java} | |
| if [[ ! -x ${jvm_bin} ]]; then | |
| jvm_bin=$(which java) | |
| fi | |
| APP_ENGINE_ROOT=${JAVA_RUNFILES}/%{appengine_sdk} | |
| main_class="com.google.appengine.tools.development.DevAppServerMain" | |
| classpath="%{classpath}" | |
| ${jvm_bin} -Dappengine.sdk.root=${APP_ENGINE_ROOT} -cp "${classpath}" \ | |
| ${main_class} "$@" ${tmp_dir} | |
| retCode=$? | |
| # We remove the trap so the return code doesn't get intercepted by it on OS X. | |
| cd ${root_path} | |
| rm -rf ${tmp_dir} | |
| trap - EXIT | |
| exit $retCode |