raspiblitz/home.admin/10setupBlitz.sh

128 lines
3.5 KiB
Bash
Raw Normal View History

2018-07-17 13:12:03 +02:00
#!/bin/sh
echo ""
2018-07-29 01:33:54 +02:00
# load network
network=`cat .network`
2018-07-17 13:12:03 +02:00
# CHECK WHAT IS ALREADY WORKING
# check list from top down - so ./10setupBlitz.sh
# and re-enters the setup process at the correct spot
# in case it got interrupted
# check if lightning is running
lndRunning=$(systemctl status lnd.service | grep -c running)
if [ ${lndRunning} -eq 1 ]; then
2018-07-29 01:33:54 +02:00
chain=$(${network}-cli -datadir=/home/${network}/.${network} getblockchaininfo | jq -r '.chain')
locked=$(sudo tail -n 1 /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log | grep -c unlock)
2018-07-17 13:12:03 +02:00
lndSyncing=$(sudo -u bitcoin lncli getinfo | jq -r '.synced_to_chain' | grep -c false)
if [ ${locked} -gt 0 ]; then
# LND wallet is locked
2018-07-27 18:30:53 +02:00
./AAunlockLND.sh
2018-07-17 13:12:03 +02:00
./10setupBlitz.sh
elif [ ${lndSyncing} -gt 0 ]; then
./70initLND.sh
else
./90finishSetup.sh
fi
exit 1
fi
# check if bitcoin is running
2018-07-29 01:33:54 +02:00
bitcoinRunning=$(sudo -u bitcoin ${network}-cli getblockchaininfo | grep -c blocks)
2018-07-17 13:12:03 +02:00
if [ ${bitcoinRunning} -eq 1 ]; then
2018-07-29 01:33:54 +02:00
echo "OK - ${network}d is running"
2018-07-17 13:12:03 +02:00
echo "Next step run Lightning"
./70initLND.sh
exit 1
fi
# check if HDD is mounted
2018-07-29 01:33:54 +02:00
mountOK=$( df | grep -c /mnt/hdd )
2018-07-17 13:12:03 +02:00
if [ ${mountOK} -eq 1 ]; then
2018-07-29 01:33:54 +02:00
# are there any signs of blockchain data
if [ -d "/mnt/hdd/${network}" ]; then
2018-07-17 13:12:03 +02:00
echo "UNKOWN STATE"
echo "It seems that something went wrong during sync/download/copy of the blockchain."
2018-07-18 02:23:33 +02:00
echo "Maybe try --> ./60finishHDD.sh"
2018-07-17 13:12:03 +02:00
exit 1
fi
# HDD is empty - ask how to get Blockchain
2018-07-29 01:33:54 +02:00
#Bitcoin
if [ ${network} = "bitcoin" ]; then
echo "Bitcoin Options"
menuitem=$(dialog --clear --beep --backtitle "RaspiBlitz" --title "Getting the Blockchain" \
--menu "You need a copy of the Bitcoin Blockchain - you have 3 options:" 13 75 4 \
1 "DOWNLOAD --> TESTNET + MAINNET thru torrent (RECOMMENDED 8h)" \
2 "COPY --> TESTNET + MAINNET from another HDD (TRICKY 3h)" \
3 "SYNC --> JUST TESTNET thru Bitoin Network (FALLBACK)" 2>&1 >/dev/tty)
# Litecoin
elif [ ${network} = "litecoin" ]; then
echo "Litecoin Options"
menuitem=$(dialog --clear --beep --backtitle "RaspiBlitz" --title "Getting the Blockchain" \
--menu "You need a copy of the Litecoin Blockchain - you have 3 options:" 13 75 4 \
1 "DOWNLOAD --> MAINNET thru torrent (RECOMMENDED)" \
2 "COPY --> MAINNET from another HDD (TRICKY)" \
3 "SYNC --> MAINNET thru Litecoin Network (FALLBACK)" 2>&1 >/dev/tty)
# error
else
echo "FAIL Unkown network(${network})"
exit 1
fi
2018-07-17 13:12:03 +02:00
clear
case $menuitem in
3)
./50syncHDD.sh
;;
1)
./50downloadHDD.sh
;;
2)
./50copyHDD.sh
;;
esac
exit 1
fi
2018-07-29 01:33:54 +02:00
2018-07-17 13:12:03 +02:00
# the HDD is not mounted --> very early stage of setup
# if the script is called for the first time
if [ ! -f "home/admin/.setup" ]; then
# run initial user dialog
./20initDialog.sh
# set SetupState to 10
echo "20" > /home/admin/.setup
# update system
echo ""
echo "*** Update System ***"
sudo apt-mark hold raspberrypi-bootloader
sudo apt-get update
sudo apt-get upgrade -f -y --force-yes
echo "OK - System is now up to date"
fi
# the HDD is already ext4 formated and called blockchain
formatExt4OK=$(lsblk -o UUID,NAME,FSTYPE,SIZE,LABEL,MODEL | grep BLOCKCHAIN | grep -c ext4)
if [ ${formatExt4OK} -eq 1 ]; then
echo "HDD was already inited or prepared"
echo "Now needs to be mounted"
./40addHDD.sh
exit 1
fi
# the HDD had no init yet
echo "HDD needs init"
./30initHDD.sh
exit 1