mirror of
https://github.com/luxfi/zapdb.git
synced 2026-10-30 15:12:20 +00:00
54 lines
1.1 KiB
Bash
Executable File
54 lines
1.1 KiB
Bash
Executable File
#!/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
|