#!/usr/bin/env bash set -e url="$1" sum="$2" dir="$3" checksum() { local file="$1" local sum="$2" echo "$file: verifying checksum..." echo "$sum $file" | sha256sum -c } get_file() { local url="$1" local file="$2" local sum="$3" if [[ -f "$file" ]] then echo "$file: found" else echo "$file: not found, downloading..." wget "$url" -O "$file" fi checksum "$file" "$sum" } extract() { local file="$1" echo "Extracting $file..." if [[ "$file" == *.zip ]] then unzip -q "$file" elif [[ "$file" == *.tar.gz ]] then tar xf "$file" else echo "Unsupported file: $file" return 1 fi } get_dep() { local url="$1" local sum="$2" local dir="$3" local file="${url##*/}" if [[ -d "$dir" ]] then echo "$dir: found" else echo "$dir: not found" get_file "$url" "$file" "$sum" extract "$file" fi } get_dep "$url" "$sum" "$dir"