raspiblitz/home.admin/config.scripts/bitcoin.check.sh
2023-12-18 22:02:20 +01:00

88 lines
2.6 KiB
Bash
Executable file

#!/bin/bash
# command info
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "-help" ]; then
echo "# bitcoin.check.sh prestart [mainnet|testnet|signet]"
exit 1
fi
######################################################################
# PRESTART
# is executed by systemd bitcoind services everytime before bitcoin is started
# so it tries to make sure the config is in valid shape
######################################################################
# check/repair lnd config before starting
if [ "$1" == "prestart" ]; then
echo "### RUNNING bitcoin.check.sh prestart"
# check correct user
if [ "$USER" != "bitcoin" ]; then
echo "# FAIL: run as user 'bitcoin'"
exit 1
fi
# check correct parameter
if [ "$2" != "mainnet" ] && [ "$2" != "testnet" ] && [ "$2" != "signet" ]; then
echo "# FAIL: missing/wrong parameter"
exit 1
fi
CHAIN="$2"
##### DIRECTORY PERMISSIONS #####
/bin/chgrp bitcoin /mnt/hdd/bitcoin
##### CLEAN UP #####
# all lines with just spaces to empty lines
sed -i 's/^[[:space:]]*$//g' /mnt/hdd/bitcoin/bitcoin.conf
# all double empty lines to single empty lines
sed -i '/^$/N;/^\n$/D' /mnt/hdd/bitcoin/bitcoin.conf
##### CHECK/SET CONFIG VALUES #####
# correct debug log path
if [ "${CHAIN}" == "mainnet" ]; then
bitcoinlog_entry="main.debuglogfile"
bitcoinlog_path="/mnt/hdd/bitcoin/debug.log"
elif [ "${CHAIN}" == "testnet" ]; then
bitcoinlog_entry="test.debuglogfile"
bitcoinlog_path="/mnt/hdd/bitcoin/testnet3/debug.log"
elif [ "${CHAIN}" == "signet" ]; then
bitcoinlog_entry="signet.debuglogfile"
bitcoinlog_path="/mnt/hdd/bitcoin/signet/debug.log"
fi
# make sure entry exists
echo "# make sure entry(${bitcoinlog_entry}) exists"
extryExists=$(grep -c "^${bitcoinlog_entry}=" /mnt/hdd/bitcoin/bitcoin.conf)
if [ "${extryExists}" == "0" ]; then
echo "${bitcoinlog_entry}=${bitcoinlog_path}" >> /mnt/hdd/bitcoin/bitcoin.conf
fi
# make sure entry has the correct value
echo "# make sure entry(${bitcoinlog_entry}) has the correct value(${bitcoinlog_path})"
sed -i "s|^${bitcoinlog_entry}=.*|${bitcoinlog_entry}=${bitcoinlog_path}|g" /mnt/hdd/bitcoin/bitcoin.conf
# make sure bitcoin debug file exists
echo "# make sure bitcoin debug file exists"
touch ${bitcoinlog_path}
chown bitcoin:bitcoin ${bitcoinlog_path}
chmod 600 ${bitcoinlog_path}
##### STATISTICS #####
# count startings
if [ "${CHAIN}" == "mainnet" ]; then
/home/admin/config.scripts/blitz.systemd.sh log blockchain STARTED
fi
echo "# OK PRESTART DONE"
else
echo "# FAIL: parameter not known - run with -h for help"
exit 1
fi