#!/bin/bash set -eu PARAMS_DIR="$HOME/.zcash-params" SPROUT_PKEY_NAME='sprout-proving.key' SPROUT_VKEY_NAME='sprout-verifying.key' SPROUT_PKEY_URL="https://z.cash/downloads/$SPROUT_PKEY_NAME" SPROUT_VKEY_URL="https://z.cash/downloads/$SPROUT_VKEY_NAME" SHA256CMD="$(command -v sha256sum || echo shasum)" SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')" function fetch_params { local url="$1" local output="$2" local dlname="${output}.dl" local expectedhash="$3" if ! [ -f "$output" ] then echo "Retrieving: $url" wget \ --progress=dot:giga \ --output-document="$dlname" \ --continue \ --retry-connrefused --waitretry=3 --timeout=30 \ "$url" "$SHA256CMD" $SHA256ARGS -c </$lockfile" # acquire the lock flock -n 200 \ && return 0 \ || return 1 } function exit_locked_error { echo "Only one instance of fetch-params.sh can be run at a time." >&2 exit 1 } function main() { lock fetch-params.sh \ || exit_locked_error cat <> "$README_PATH" <