add a project setup script so we can better deal with dependencies, also add the first dependency to the project

BodgeMaster-unfinished
BodgeMaster 2022-06-27 09:07:25 +02:00
parent 3483b4182e
commit 23a928bd06
2 changed files with 51 additions and 0 deletions

View File

@ -47,6 +47,8 @@ point to `bin/lib`.
- `cd` to the project's base directory
- `scripts/setup_project.sh`
This will download the following dependenceis:
- [tiny-utf8](https://github.com/DuffsDevice/tiny-utf8)
### Building

View File

@ -0,0 +1,49 @@
#!/usr/bin/env bash
# figure out if using wget or curl
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 "Neither wget nor curl found. Aborting."
exit 1
fi
fi
function download {
URL="$1"
DESTINATION="$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
echo "done."
}
echo "Cleaning build files..."
scripts/clean.sh
echo "Cleaning dependencies..."
scripts/clean_dependencies.sh
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
#TODO: verify the files we have downloaded
#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."
rm -rv dependencies/tmp