mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2024-11-20 18:22:01 +01:00
183 lines
5.8 KiB
Bash
183 lines
5.8 KiB
Bash
# get basic system information
|
|
# these are the same set of infos the WebGUI dialog/controler has
|
|
source /home/admin/raspiblitz.info
|
|
|
|
# SETUPFILE
|
|
# this key/value file contains the state during the setup process
|
|
SETUPFILE="/var/cache/raspiblitz/temp/raspiblitz.setup"
|
|
source $SETUPFILE
|
|
|
|
# flags for sub dialogs after choice
|
|
uploadLNDRESCUE=0
|
|
enterSEED=0
|
|
uploadSCB=0
|
|
|
|
OPTIONS=()
|
|
OPTIONS+=(NEW "Setup a brand new Lightning Node (DEFAULT)")
|
|
OPTIONS+=(OLD "I had an old Node I want to recover/restore")
|
|
CHOICE=$(dialog --backtitle "RaspiBlitz" --clear --title "LND Setup" --menu "LND Data & Wallet" 11 60 6 "${OPTIONS[@]}" 2>&1 >/dev/tty)
|
|
|
|
if [ "${CHOICE}" == "NEW" ]; then
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^setPasswordA=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordB=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordC=/d' $SETUPFILE
|
|
|
|
# mark all passwords to be set at the end
|
|
echo "setPasswordA=1" >> $SETUPFILE
|
|
echo "setPasswordB=1" >> $SETUPFILE
|
|
echo "setPasswordC=1" >> $SETUPFILE
|
|
|
|
elif [ "${CHOICE}" == "OLD" ]; then
|
|
|
|
CHOICE=""
|
|
while [ "${CHOICESUB}" == "" ]
|
|
do
|
|
|
|
# get more details what kind of old lightning wallet user has
|
|
OPTIONS=()
|
|
OPTIONS+=(LNDRESCUE "LND tar.gz-Backupfile (BEST)")
|
|
OPTIONS+=(SEED+SCB "Seed & channel.backup file (OK)")
|
|
OPTIONS+=(ONLYSEED "Only Seed Word List (FALLBACK)")
|
|
CHOICESUB=$(dialog --backtitle "RaspiBlitz" --clear --title "RECOVER LND DATA & WALLET" --menu "Data you have to recover from?" 11 60 6 "${OPTIONS[@]}" 2>&1 >/dev/tty)
|
|
|
|
if [ "${CHOICESUB}" == "LNDRESCUE" ]; then
|
|
|
|
# just activate LND rescue upload
|
|
uploadLNDRESCUE=1
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^setPasswordA=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordB=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordC=/d' $SETUPFILE
|
|
|
|
# dont set password c anymore - mark the rest
|
|
echo "setPasswordA=1" >> $SETUPFILE
|
|
echo "setPasswordB=1" >> $SETUPFILE
|
|
|
|
elif [ "${CHOICESUB}" == "SEED+SCB" ]; then
|
|
|
|
# activate SEED input & SCB upload
|
|
enterSEED=1
|
|
uploadSCB=1
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^setPasswordA=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordB=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordC=/d' $SETUPFILE
|
|
|
|
# mark all passwords to be set at the end
|
|
echo "setPasswordA=1" >> $SETUPFILE
|
|
echo "setPasswordB=1" >> $SETUPFILE
|
|
echo "setPasswordC=1" >> $SETUPFILE
|
|
|
|
elif [ "${CHOICESUB}" == "ONLYSEED" ]; then
|
|
|
|
# let people know about the difference between SEED & SEED+SCB
|
|
whiptail --title "IMPORTANT INFO" --yes-button "JUST SEED" --no-button "Go Back" --yesno "
|
|
Using JUST SEED WORDS will only recover your on-chain funds.
|
|
To also try to recover the open channel funds you need the
|
|
channel.backup file (since RaspiBlitz v1.2 / LND 0.6-beta)
|
|
or having a complete LND rescue-backup from your old node.
|
|
" 11 65
|
|
|
|
if [ $? -eq 1 ]; then
|
|
# when user wants to go back
|
|
CHOICESUB=""
|
|
else
|
|
# activate SEED input & SCB upload
|
|
enterSEED=1
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^setPasswordA=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordB=/d' $SETUPFILE
|
|
sudo sed -i '/^setPasswordC=/d' $SETUPFILE
|
|
|
|
# mark all passwords to be set at the end
|
|
echo "setPasswordA=1" >> $SETUPFILE
|
|
echo "setPasswordB=1" >> $SETUPFILE
|
|
echo "setPasswordC=1" >> $SETUPFILE
|
|
|
|
fi
|
|
|
|
else
|
|
# user cancel - signal to outside app by exit code (2 = submenu)
|
|
exit 2
|
|
fi
|
|
|
|
done
|
|
|
|
else
|
|
# user cancel - signal to outside app by exit code (1 = mainmenu)
|
|
exit 1
|
|
fi
|
|
|
|
# UPLOAD LND RESCUE FILE dialog (if activated by dialogs above)
|
|
if [ ${uploadLNDRESCUE} -eq 1 ]; then
|
|
|
|
# run upload dialog and get result
|
|
_temp="/var/cache/raspiblitz/temp/.temp.tmp"
|
|
/home/admin/config.scripts/lnd.backup.sh lnd-import-gui setup $_temp
|
|
source $_temp 2>/dev/null
|
|
sudo rm $_temp 2>/dev/null
|
|
|
|
# if user canceled upload
|
|
if [ "${lndrescue}" == "" ]; then
|
|
# signal cancel to the calling script by exit code (3 = exit on lndrescue)
|
|
exit 3
|
|
fi
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^lndrescue=/d' $SETUPFILE
|
|
|
|
# store result in setup state
|
|
echo "lndrescue='${lndrescue}'" >> $SETUPFILE
|
|
fi
|
|
|
|
# INPUT LIGHTNING SEED dialog (if activated by dialogs above)
|
|
if [ ${enterSEED} -eq 1 ]; then
|
|
|
|
# start seed input and get results
|
|
_temp="/var/cache/raspiblitz/.temp.tmp"
|
|
/home/admin/config.scripts/lnd.backup.sh seed-import-gui $_temp
|
|
source $_temp 2>/dev/null
|
|
sudo rm $_temp 2>/dev/null
|
|
|
|
# if user canceled the seed input
|
|
if [ "${seedWords}" == "" ]; then
|
|
# signal cancel to the calling script by exit code (4 = exit on seedwords)
|
|
exit 4
|
|
fi
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^seedWords=/d' $SETUPFILE
|
|
sudo sed -i '/^seedPassword=/d' $SETUPFILE
|
|
|
|
# write the seed data into the setup state
|
|
echo "seedWords='${seedWords}'" >> $SETUPFILE
|
|
echo "seedPassword='${seedPassword}'" >> $SETUPFILE
|
|
fi
|
|
|
|
# UPLOAD STATIC CHANNEL BACKUP FILE dialog (if activated by dialogs above)
|
|
if [ ${uploadSCB} -eq 1 ]; then
|
|
|
|
# import SCB and get results
|
|
_temp="/var/cache/raspiblitz/.temp.tmp"
|
|
/home/admin/config.scripts/lnd.backup.sh scb-import-gui setup $_temp
|
|
source $_temp 2>/dev/null
|
|
sudo rm $_temp 2>/dev/null
|
|
|
|
# if user canceled the upload
|
|
if [ "${staticchannelbackup}" == "" ]; then
|
|
# signal cancel to the calling script by exit code (5 = exit on scb)
|
|
exit 5
|
|
fi
|
|
|
|
# clear setup state from all fomer possible choices (previous loop)
|
|
sudo sed -i '/^staticchannelbackup=/d' $SETUPFILE
|
|
|
|
# write the filename into the setup state
|
|
echo "staticchannelbackup='${staticchannelbackup}'" >> $SETUPFILE
|
|
|
|
fi |