#!/usr/bin/env bash set -e install_mac() { command -v brew > /dev/null || \ { echo "[ERROR]: 'brew' command not not found. Exiting" 1>&2; exit 1; } brew install flatbuffers } install_linux() { for CMD in curl cmake g++ make; do command -v $CMD > /dev/null || \ { echo "[ERROR]: '$CMD' command not not found. Exiting" 1>&2; exit 1; } done ## Create Temp Build Directory BUILD_DIR=$(mktemp -d) pushd $BUILD_DIR ## Fetch Latest Tarball LATEST_VERSION=$(curl -s https://api.github.com/repos/google/flatbuffers/releases/latest | grep -oP '(?<=tag_name": ")[^"]+') curl -sLO https://github.com/google/flatbuffers/archive/$LATEST_VERSION.tar.gz tar xf $LATEST_VERSION.tar.gz ## Build Binaries cd flatbuffers-${LATEST_VERSION#v} cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release make ./flattests cp flatc /usr/local/bin/flatc ## Cleanup Temp Build Directory popd rm -rf $BUILD_DIR } SYSTEM=$(uname -s) case ${SYSTEM,,} in linux) sudo bash -c "$(declare -f install_linux); install_linux" ;; darwin) install_mac ;; esac