2018-10-15 14:43:09 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
# LOGFILE - store debug logs of bootstrap
|
|
|
|
logFile="/home/admin/raspiblitz.log"
|
|
|
|
|
|
|
|
# INFOFILE - state data from bootstrap
|
|
|
|
infoFile="/home/admin/raspiblitz.info"
|
2018-12-06 14:36:02 +01:00
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
# CONFIGFILE - configuration of RaspiBlitz
|
2018-12-06 14:36:02 +01:00
|
|
|
configFile="/mnt/hdd/raspiblitz.conf"
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
# debug info
|
|
|
|
echo "STARTED Migration/Init --> see logs in ${logFile}"
|
|
|
|
echo "STARTED Migration/Init" >> ${logFile}
|
2018-12-06 18:28:20 +01:00
|
|
|
sudo sed -i "s/^message=.*/message='Running Data Migration'/g" ${infoFile}
|
2018-12-06 17:39:06 +01:00
|
|
|
|
2020-01-15 12:22:28 +01:00
|
|
|
# HDD BTRFS RAID REPAIR IF NEEDED
|
|
|
|
source <(sudo /home/admin/config.scripts/blitz.datadrive.sh status)
|
|
|
|
if [ ${isBTRFS} -eq 1 ] && [ ${isMounted} -eq 1 ]; then
|
|
|
|
echo "CHECK BTRFS RAID" >> ${logFile}
|
|
|
|
if [ ${isRaid} -eq 1 ] && [ ${#raidUsbDev} -eq 0 ]; then
|
|
|
|
echo "HDD was set to work in RAID, but RAID drive is not connected" >> ${logFile}
|
|
|
|
echo "Trying to set HDD back to single mode." >> ${logFile}
|
|
|
|
sudo /home/admin/config.scripts/blitz.datadrive.sh raid off >> ${logFile}
|
|
|
|
else
|
|
|
|
echo "OK" >> ${logFile}
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
# LOAD DATA & PRECHECK
|
|
|
|
|
2018-12-06 14:36:02 +01:00
|
|
|
# check if there is a config file
|
|
|
|
configExists=$(ls ${configFile} 2>/dev/null | grep -c '.conf')
|
|
|
|
if [ ${configExists} -eq 0 ]; then
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "FAIL see ${logFile}"
|
|
|
|
echo "FAIL: no config file (${configFile}) found to init or upgrade!" >> ${logFile}
|
2018-12-06 14:36:02 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# load old or init raspiblitz config
|
|
|
|
source ${configFile}
|
|
|
|
|
|
|
|
# check if config files contains basic: hostname
|
|
|
|
if [ ${#hostname} -eq 0 ]; then
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "FAIL see ${logFile}"
|
|
|
|
echo "FAIL: missing hostname in (${configFile})!" >> ${logFile}
|
2018-12-06 14:36:02 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2018-10-15 14:43:09 +02:00
|
|
|
# load codeVersion
|
2018-12-06 14:36:02 +01:00
|
|
|
source /home/admin/_version.info
|
|
|
|
|
|
|
|
# check if code version was loaded
|
|
|
|
if [ ${#codeVersion} -eq 0 ]; then
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "FAIL see ${logFile}"
|
|
|
|
echo "FAIL: no code version (/home/admin/_version.info) found!" >> ${logFile}
|
2018-12-06 14:36:02 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "prechecks OK" >> ${logFile}
|
2018-12-06 14:36:02 +01:00
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
# DEFAULT VALUES - MISSING data fields on init or upadte
|
2018-12-06 14:36:02 +01:00
|
|
|
|
|
|
|
# AUTOPILOT
|
|
|
|
# autoPilot=off|on
|
|
|
|
if [ ${#autoPilot} -eq 0 ]; then
|
|
|
|
echo "autoPilot=off" >> $configFile
|
|
|
|
fi
|
|
|
|
|
|
|
|
# AUTO NAT DISCOVERY
|
|
|
|
# autoNatDiscovery=off|on
|
|
|
|
if [ ${#autoNatDiscovery} -eq 0 ]; then
|
|
|
|
echo "autoNatDiscovery=off" >> $configFile
|
|
|
|
fi
|
2018-10-15 14:43:09 +02:00
|
|
|
|
2018-12-06 14:36:02 +01:00
|
|
|
# TOR
|
|
|
|
# runBehindTor=off|on
|
|
|
|
if [ ${#runBehindTor} -eq 0 ]; then
|
|
|
|
echo "runBehindTor=off" >> $configFile
|
|
|
|
fi
|
|
|
|
|
|
|
|
# RideTheLightning RTL
|
|
|
|
# rtlWebinterface=off|on
|
|
|
|
if [ ${#rtlWebinterface} -eq 0 ]; then
|
|
|
|
echo "rtlWebinterface=off" >> $configFile
|
|
|
|
fi
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "default values OK" >> ${logFile}
|
|
|
|
|
2018-12-06 14:36:02 +01:00
|
|
|
# MIGRATION - DATA CONVERSION when updating config
|
|
|
|
# this is the place if on a future version change
|
|
|
|
# a conversion of config data or app data is needed
|
2018-10-15 14:43:09 +02:00
|
|
|
|
2019-01-10 18:10:24 +01:00
|
|
|
# if old bitcoin.conf exists ...
|
|
|
|
configExists=$(sudo ls /mnt/hdd/bitcoin/bitcoin.conf | grep -c '.conf')
|
|
|
|
if [ ${configExists} -eq 1 ]; then
|
|
|
|
echo "Checking old bitcoin.conf ..." >> ${logFile}
|
|
|
|
|
|
|
|
# make sure to fix bitcoind RPC port if not done in old version
|
|
|
|
# https://github.com/rootzoll/raspiblitz/issues/217
|
2020-01-03 15:30:39 +01:00
|
|
|
# https://github.com/rootzoll/raspiblitz/issues/950
|
|
|
|
|
|
|
|
if ! grep -Eq "^rpcallowip=.*" /mnt/hdd/${network}/${network}.conf; then
|
|
|
|
echo "fix issue #217 -> adding rpcallowip=127.0.0.1" >> ${logFile}
|
|
|
|
echo "rpcallowip=127.0.0.1" >> /mnt/hdd/${network}/${network}.conf
|
2019-01-10 18:10:24 +01:00
|
|
|
else
|
2020-01-03 15:30:39 +01:00
|
|
|
echo "check issue #217 -> ok rpcallow exists" >> ${logFile}
|
2019-01-10 18:10:24 +01:00
|
|
|
fi
|
2020-01-03 15:30:39 +01:00
|
|
|
|
|
|
|
# check whether "main." needs to be added to rpcport and rpcbind
|
|
|
|
if grep -Eq "^rpcport=.*" /mnt/hdd/${network}/${network}.conf; then
|
|
|
|
echo "fix issue #950 -> change rpcport to main.rpcport" >> ${logFile}
|
|
|
|
sudo sed -i -E 's/^(rpcport=.*)/main.\1/g' /mnt/hdd/${network}/${network}.conf
|
|
|
|
else
|
|
|
|
echo "check issue #950 -> ok ^rpcport does not exist" >> ${logFile}
|
|
|
|
fi
|
|
|
|
|
|
|
|
if grep -Eq "^rpcbind=.*" /mnt/hdd/${network}/${network}.conf; then
|
|
|
|
echo "fix issue #950 -> change rpcbind to main.rpcbind" >> ${logFile}
|
|
|
|
sudo sed -i -E 's/^(rpcbind=.*)/main.\1/g' /mnt/hdd/${network}/${network}.conf
|
|
|
|
else
|
|
|
|
echo "check issue #950 -> ok ^rpcbind does not exist" >> ${logFile}
|
|
|
|
fi
|
|
|
|
|
|
|
|
# check whether right settings are there ("main.")
|
|
|
|
if ! grep -Eq "^main.rpcport=.*" /mnt/hdd/${network}/${network}.conf; then
|
|
|
|
echo "fix issue #217 -> adding main.rpcport=8332" >> ${logFile}
|
|
|
|
echo "main.rpcport=8332" >> /mnt/hdd/${network}/${network}.conf
|
2019-01-10 18:10:24 +01:00
|
|
|
else
|
2020-01-03 15:30:39 +01:00
|
|
|
echo "check issue #217 -> ok main.rpcport exists" >> ${logFile}
|
2019-01-10 18:10:24 +01:00
|
|
|
fi
|
2020-01-03 15:30:39 +01:00
|
|
|
|
|
|
|
if ! grep -Eq "^main.rpcbind=.*" /mnt/hdd/${network}/${network}.conf; then
|
|
|
|
echo "fix issue #217 -> adding main.rpcbind=127.0.0.1:8332" >> ${logFile}
|
|
|
|
echo "main.rpcbind=127.0.0.1:8332" >> /mnt/hdd/${network}/${network}.conf
|
|
|
|
else
|
|
|
|
echo "check issue #217 -> ok main.rpcbind exists" >> ${logFile}
|
|
|
|
fi
|
|
|
|
|
|
|
|
# same for testnet
|
|
|
|
if ! grep -Eq "^test.rpcport=.*" /mnt/hdd/${network}/${network}.conf; then
|
2020-01-03 15:32:21 +01:00
|
|
|
echo "fix issue #950 -> adding test.rpcport=18332" >> ${logFile}
|
|
|
|
echo "test.rpcport=18332" >> /mnt/hdd/${network}/${network}.conf
|
2019-01-10 18:10:24 +01:00
|
|
|
else
|
2020-01-03 15:30:39 +01:00
|
|
|
echo "check issue #950 -> ok test.rpcport exists" >> ${logFile}
|
2019-01-10 18:10:24 +01:00
|
|
|
fi
|
2020-01-03 15:30:39 +01:00
|
|
|
|
|
|
|
if ! grep -Eq "^test.rpcbind=.*" /mnt/hdd/${network}/${network}.conf; then
|
2020-01-03 15:32:21 +01:00
|
|
|
echo "fix issue #950 -> adding test.rpcbind=127.0.0.1:18332" >> ${logFile}
|
|
|
|
echo "test.rpcbind=127.0.0.1:18332" >> /mnt/hdd/${network}/${network}.conf
|
2020-01-03 15:30:39 +01:00
|
|
|
else
|
|
|
|
echo "check issue #950 -> ok test.rpcbind exists" >> ${logFile}
|
|
|
|
fi
|
|
|
|
|
2019-01-10 18:10:24 +01:00
|
|
|
fi
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "Version Code: ${codeVersion}" >> ${logFile}
|
|
|
|
echo "Version Data: ${raspiBlitzVersion}" >> ${logFile}
|
2018-10-15 14:43:09 +02:00
|
|
|
|
2018-12-06 14:36:02 +01:00
|
|
|
if [ "${raspiBlitzVersion}" != "${codeVersion}" ]; then
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "detected version change ... starting migration script" >> ${logFile}
|
|
|
|
echo "TODO: Update Migration check ... only needed after version 1.0" >> ${logFile}
|
2020-02-19 12:28:12 +01:00
|
|
|
echo "OK Done - Updating version in config ..."
|
|
|
|
sudo sed -i "s/^raspiBlitzVersion=.*/raspiBlitzVersion='${codeVersion}'/g" ${configFile}
|
2018-12-06 14:36:02 +01:00
|
|
|
else
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "OK - version of config data is up to date" >> ${logFile}
|
2018-12-06 14:36:02 +01:00
|
|
|
fi
|
|
|
|
|
2018-12-06 17:39:06 +01:00
|
|
|
echo "END Migration/Init" >> ${logFile}
|
|
|
|
|
2018-12-06 14:36:02 +01:00
|
|
|
exit 0
|
|
|
|
|