#!/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://zcash.dl.mercerweiss.com/$SPROUT_PKEY_NAME" SPROUT_VKEY_URL="https://zcash.dl.mercerweiss.com/$SPROUT_VKEY_NAME" SPROUT_URL="https://z.cash/downloads" SPROUT_IPFS="/ipfs/QmZKKx7Xup7LiAtFRhYsE1M7waXcv9ir9eCECyXAFGxhEo" SHA256CMD="$(command -v sha256sum || echo shasum)" SHA256ARGS="$(command -v sha256sum >/dev/null || echo '-a 256')" WGETCMD="$(command -v wget || echo '')" IPFSCMD="$(command -v ipfs || echo '')" # fetch methods can be disabled with ZC_DISABLE_SOMETHING=1 ZC_DISABLE_WGET="${ZC_DISABLE_WGET:-}" ZC_DISABLE_IPFS="${ZC_DISABLE_IPFS:-}" function fetch_wget { if [ -z "$WGETCMD" ] || ! [ -z "$ZC_DISABLE_WGET" ]; then return 1 fi local filename="$1" local dlname="$2" cat <&2 <&2 exit 1 fi fi } # Use flock to prevent parallel execution. function lock() { local lockfile=/tmp/fetch_params.lock # create lock file eval "exec 200>/$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" <