#!/usr/bin/env bash set -euo pipefail set -x RUST_ALL_TARGETS=( "changeset" "config" "coordinates" "cyberpunk-splash" "dashboard" "emseries" "flow" "fluent-ergonomics" "geo-types" "hex-grid" "ifc" "memorycache" "screenplay" "sgf" ) build_rust_targets() { local CMD=$1 local TARGETS=${@/$CMD} for target in $TARGETS; do MODULE=$target CMD=$CMD ./builders/rust.sh done } build_dist() { local TARGETS=${@/$CMD} for target in $TARGETS; do if [ -f $target/dist.sh ]; then cd $target && ./dist.sh fi done } export CARGO=`which cargo` if [ -z "${TARGET-}" ]; then TARGET="all" fi if [ -z "${CMD-}" ]; then CMD="test release" fi if [ "${CMD}" == "clean" ]; then cargo clean exit 0 fi for cmd in $CMD; do if [ "${CMD}" == "dist" ]; then build_dist $TARGET elif [ "${TARGET}" == "all" ]; then build_rust_targets $cmd ${RUST_ALL_TARGETS[*]} else build_rust_targets $cmd $TARGET fi done