#!/usr/bin/env bash # Copyright 2022, FOSS-VG Developers and Contributers # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # version 3 along with this program. # If not, see https://www.gnu.org/licenses/agpl-3.0.en.html echo -n "Wget or curl? " if command -v wget >/dev/null 2>&1; then USE_WGET=yes echo "wget" else if command -v curl >/dev/null 2>&1; then USE_WGET=no echo "curl" else echo "Found neither wget nor curl. Aborting." exit 1 fi fi function download { URL="$1" DESTINATION="$2" SHA256SUM="$3 *$2" echo -n "Downloading $URL to $DESTINATION... " if [ $USE_WGET = yes ]; then wget -O "$DESTINATION" "$URL" >/dev/null 2>&1 else curl -L "$URL" --output "$DESTINATION" >/dev/null 2>&1 fi if sha256sum --check <<< $SHA256SUM >/dev/null 2>&1; then echo "done." return 0 else echo "error." echo "Checksum verification failed. Your download is either corrupted or the file has been altered." rm -v "$DESTINATION" return 1 fi } echo "Cleaning build files..." scripts/clean.sh echo "Cleaning dependencies..." scripts/clean_dependencies.sh set -e # failures are not acceptable here mkdir -v dependencies/tmp download https://github.com/DuffsDevice/tiny-utf8/archive/refs/tags/v4.4.3.tar.gz dependencies/tmp/tiny-utf8.tar.gz 8e3f61651909c9f3105d3501932a96aa65733127fb6e7cf94cb1b0a2dff42c8f download https://github.com/fpagliughi/sockpp/archive/refs/tags/v0.7.1.tar.gz dependencies/tmp/sockpp.tar.gz 2e023528bebbd2ac083fc91fbe6d5c4158c3336bedbcff48f594f3b28f53b940 #TODO: keep the files somewhere else as a cache and only download the ones # we don't have or that got corrupted #TODO: once we cache files properly, have clean_dependencies.sh prune # unknown files from the cache (for example old versions # of dependencies) echo -n "Extracting tiny-utf8... " gzip -d dependencies/tmp/tiny-utf8.tar.gz tar -xf dependencies/tmp/tiny-utf8.tar -C dependencies echo "done." echo -n "Extracting sockpp... " gzip -d dependencies/tmp/sockpp.tar.gz tar -xf dependencies/tmp/sockpp.tar -C dependencies echo "done." echo -n "Building sockpp... " pushd dependencies/sockpp-0.7.1/ >/dev/null 2>&1 cmake -Bbuild . cmake --build build popd >/dev/null 2>&1 echo "done." rm -rv dependencies/tmp