#!/usr/bin/env bash set -e cd $(dirname $0) BUILDVH=$(realpath ./build_vendorheader) BINCTL=headertool for arg in "$@"; do if [ "$arg" == "--check" ]; then CHECK="--check" fi if [ "$arg" == "--quiet" ]; then QUIET="--quiet" fi done cd ../embed/models/ # Find directories and store them in an array dirs=($(find . -maxdepth 1 -type d ! -name '.' | sed 's|^\./||')) # Filter directories that have 'vendorheader' subdirectory MODELS=() for dir in "${dirs[@]}"; do if [ -d "$dir/vendorheader" ]; then MODELS+=("$dir") fi done for MODEL in ${MODELS[@]}; do cd ./$MODEL/vendorheader echo "Generating vendor headers for $MODEL" # construct all vendor headers for fn in *.json; do $BUILDVH $QUIET $CHECK $fn done TMPDIR=$(mktemp -d) trap "rm -rf $TMPDIR" EXIT # sign dev and QA vendor header for name in unsafe dev_DO_NOT_SIGN; do SRC_NAME="vendorheader_${name}_unsigned.bin" DEST_NAME="vendorheader_${name}_signed_dev.bin" if [ ! -f "$SRC_NAME" ]; then continue fi cp -a vendorheader_${name}_unsigned.bin "$TMPDIR/$DEST_NAME" $BINCTL $QUIET -D "$TMPDIR/$DEST_NAME" if [ -n "$CHECK" ]; then diff "$DEST_NAME" "$TMPDIR/$DEST_NAME" fi cp -a "$TMPDIR/$DEST_NAME" "$DEST_NAME" done cd ../../ done