#! /bin/bash
# ------------------------------------------------------------------
# A script to run the example programs.
#
# Usage: ./run
#
# For example: ./run web-file-browser
# ------------------------------------------------------------------
set -e
die() {
for line in "$@"; do
echo "$line" > /dev/stderr
done
exit 1
}
# Locate the script file. Cross symlinks if necessary.
loc="$0"
while [ -h "$loc" ]; do
ls=`ls -ld "$loc"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
loc="$link" # Absolute link
else
loc="`dirname "$loc"`/$link" # Relative link
fi
done
base_dir="$(dirname "$loc")"
if [ $# -eq 0 ]; then
die "" \
"Usage: run example-args..." \
"" \
"For example: run upload-file ..." \
""
fi
declare -a project_properties
while [[ $# -gt 0 ]]; do
case "${1}" in
--use-auth-prop)
project_properties+=("-PuseAuthInfoFileProp=true")
;;
--fail-on-error)
project_properties+=("-PfailOnError=true")
;;
--*)
die "unrecognized argument: ${1}"
;;
*)
break
;;
esac
shift
done
example_name="$1" ; shift
example_name="$(echo "$example_name" | sed 's|/*$||')"
# Remove trailing slashes, since shell tab completion will usually add one.
base_dir=`dirname "$loc"`
i=0
for arg in "${@}" ; do
project_properties+=("-Parg${i}=${arg}")
i=$((i+1))
done
exec "${base_dir}/gradlew" -b "${base_dir}/build.gradle" --console plain --quiet ":${example_name}:run" "${project_properties[@]}"