#!/usr/local/bin/zsh # TODO: add rust and llvm90 to installer pkg list if rpi4 arch detected # TODO: add network as argument # TODO: get env vars from global settings file for RPC, etc. # TODO: patch to disable compaction if settings wants that # load rust cargo if installed from rustup if [ -f "${HOME}/.cargo/env" ];then source "${HOME}/.cargo/env" export PATH="${HOME}/.cargo/bin:${PATH}" fi # detect architecture case `uname -m` in amd64) export TARGET=x86_64-unknown-freebsd ;; arm64) # need to compile rustc with target set for rpi4 etc. export TARGET=aarch64-unknown-freebsd # NB: need to load libgcc_s.so from gcc9 instead of /lib !! export LD_LIBRARY_PATH=/usr/local/lib/gcc9 ;; *) echo "Error: Unknown Architecture!" exit 1 esac # run electrs in a loop until false do # patch electrs source # if file exists and grep contains strings, patch it cd "${HOME}"/.cargo/registry/src/github.com-*/sysconf-0.3.*/ patch -p1 < sysconf.patch # go home cd "${HOME}/electrs" cargo run \ --target "${TARGET}" \ --release \ --bin electrs \ -- \ -vvvv \ --light-mode \ --address-search \ --db-dir /electrs \ --daemon-dir "${HOME}" \ --http-addr '[::]:3000' \ --cookie "${BITCOIN_MAINNET_RPC_USER}:${BITCOIN_MAINNET_RPC_PASS}" \ --precache-scripts "${HOME}/electrs/contrib/popular-scripts.txt" sleep 1 done exit 0