#!/usr/bin/env bash # # Time running a single parse without invoking a compare with emacs. set -euo pipefail IFS=$'\n\t' DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" : ${PROFILE:="debug"} function main { local features=(compare foreign_document_test tracing event_count wasm wasm_test) ENABLED_FEATURES= for_each_combination "${features[@]}" } function for_each_combination { local additional_flags=() if [ "$PROFILE" = "dev" ] || [ "$PROFILE" = "debug" ]; then PROFILE="debug" else additional_flags+=(--profile "$PROFILE") fi local flag=$1 shift if [ "$#" -gt 0 ]; then ENABLED_FEATURES="$ENABLED_FEATURES" for_each_combination "${@}" elif [ -z "$ENABLED_FEATURES" ]; then (cd "$DIR/../" && echo "\n\n\n========== no features ==========\n\n\n" && set -x && cargo build "${additional_flags[@]}" --no-default-features) else (cd "$DIR/../" && echo "\n\n\n========== ${ENABLED_FEATURES:1} ==========\n\n\n" && set -x && cargo build "${additional_flags[@]}" --no-default-features --features "${ENABLED_FEATURES:1}") fi ENABLED_FEATURES="$ENABLED_FEATURES,$flag" if [ "$#" -gt 0 ]; then ENABLED_FEATURES="$ENABLED_FEATURES" for_each_combination "${@}" else (cd "$DIR/../" && echo "\n\n\n========== ${ENABLED_FEATURES:1} ==========\n\n\n" && set -x && cargo build "${additional_flags[@]}" --no-default-features --features "${ENABLED_FEATURES:1}") fi } main "${@}"