#!/usr/bin/env bash

# N.B. Bitcoind must be installed as /usr/local/bin/bitcoind.

set -euxo pipefail

apt-get update --yes
apt-get upgrade --yes
apt-get install --yes clang pkg-config libssl-dev acl

if ! which bitcoind; then
  wget -O bitcoin.tar.gz 'https://bitcoincore.org/bin/bitcoin-core-23.0/bitcoin-23.0-x86_64-linux-gnu.tar.gz'
  tar -xzvf bitcoin.tar.gz -C /usr/local/bin --strip-components=2 "bitcoin-23.0/bin/bitcoin-cli" "bitcoin-23.0/bin/bitcoind"
fi

bitcoind --version

if [[ ! -e ~/.cargo/env ]]; then
  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
fi

source ~/.cargo/env

cargo install --path . --root /usr/local

id --user bitcoin || useradd --system bitcoin
id --user ord || useradd --system ord

cp deploy/bitcoind.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable bitcoind
systemctl restart bitcoind
sleep 1

setfacl -m ord:x /var/lib/bitcoind
setfacl -dm ord:r /var/lib/bitcoind
setfacl -m ord:r /var/lib/bitcoind/signet/.cookie

cp deploy/ord.service /etc/systemd/system/
systemctl daemon-reload
systemctl stop ord
cp target/release/ord /usr/local/bin/ord
systemctl enable ord
systemctl restart ord

sleep 1
curl http://localhost/list
