raspiblitz/home.admin/setup.scripts/dialogLightningWallet-cln.sh

143 lines
4.5 KiB
Bash
Raw Normal View History

2021-05-03 14:00:01 +02:00
# 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
2021-05-03 15:24:54 +02:00
SETUPFILE="/var/cache/raspiblitz/temp/raspiblitz.setup"
2021-05-03 14:32:36 +02:00
source $SETUPFILE
2021-05-03 14:00:01 +02:00
# flags for sub dialogs after choice
2021-05-26 13:05:52 -05:00
uploadRESCUE=0
2021-05-03 14:00:01 +02:00
enterSEED=0
OPTIONS=()
OPTIONS+=(NEW "Setup a brand new Lightning Node (DEFAULT)")
OPTIONS+=(OLD "I had an old Node I want to recover/restore")
2021-07-17 15:25:32 +02:00
CHOICE=$(dialog --backtitle "RaspiBlitz" --clear --title "C-Lightning Setup" --menu "C-Lightning Data & Wallet" 11 60 6 "${OPTIONS[@]}" 2>&1 >/dev/tty)
2021-05-03 14:00:01 +02:00
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
2021-07-20 17:45:38 +02:00
# mark all passwords to be set - passwordc wallet encryption not for cln
2021-05-03 14:00:01 +02:00
echo "setPasswordA=1" >> $SETUPFILE
echo "setPasswordB=1" >> $SETUPFILE
2021-07-20 17:45:38 +02:00
echo "setPasswordC=0" >> $SETUPFILE
2021-05-03 14:00:01 +02:00
elif [ "${CHOICE}" == "OLD" ]; then
CHOICE=""
while [ "${CHOICESUB}" == "" ]
do
# get more details what kind of old lightning wallet user has
OPTIONS=()
2021-05-26 13:05:52 -05:00
OPTIONS+=(CLNRESCUE "CLN tar.gz-Backupfile (BEST)")
2021-05-03 14:00:01 +02:00
OPTIONS+=(ONLYSEED "Only Seed Word List (FALLBACK)")
2021-05-26 13:05:52 -05:00
CHOICESUB=$(dialog --backtitle "RaspiBlitz" --clear --title "RECOVER CLN DATA & WALLET" --menu "Data you have to recover from?" 11 60 6 "${OPTIONS[@]}" 2>&1 >/dev/tty)
2021-05-03 14:00:01 +02:00
2021-05-26 13:05:52 -05:00
if [ "${CHOICESUB}" == "CLNRESCUE" ]; then
2021-05-03 14:00:01 +02:00
# just activate LND rescue upload
2021-05-26 13:05:52 -05:00
uploadRESCUE=1
2021-05-03 14:00:01 +02:00
# 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}" == "ONLYSEED" ]; then
2021-05-26 13:05:52 -05:00
# let people know about just seed backup
2021-05-03 14:00:01 +02:00
whiptail --title "IMPORTANT INFO" --yes-button "JUST SEED" --no-button "Go Back" --yesno "
Using JUST SEED WORDS will only recover your on-chain funds.
2021-05-26 13:05:52 -05:00
To recover also your channel funds a complete rescue-backup
from your old node would be recommended.
2021-05-03 14:00:01 +02:00
" 11 65
if [ $? -eq 1 ]; then
# when user wants to go back
CHOICESUB=""
else
2021-07-20 17:45:38 +02:00
# activate SEED input
2021-05-03 14:00:01 +02:00
enterSEED=1
2021-05-03 15:12:52 +02:00
# 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
2021-07-20 17:45:38 +02:00
echo "setPasswordC=0" >> $SETUPFILE
2021-05-03 15:12:52 +02:00
2021-05-03 14:00:01 +02:00
fi
else
2021-05-03 14:21:29 +02:00
# user cancel - signal to outside app by exit code (2 = submenu)
exit 2
2021-05-03 14:00:01 +02:00
fi
done
else
2021-05-03 14:21:29 +02:00
# user cancel - signal to outside app by exit code (1 = mainmenu)
2021-05-03 14:00:01 +02:00
exit 1
fi
# UPLOAD LND RESCUE FILE dialog (if activated by dialogs above)
2021-05-26 13:05:52 -05:00
if [ ${uploadRESCUE} -eq 1 ]; then
2021-05-03 14:00:01 +02:00
# run upload dialog and get result
2021-05-03 15:24:54 +02:00
_temp="/var/cache/raspiblitz/temp/.temp.tmp"
2021-05-26 13:05:52 -05:00
clear
2021-07-17 15:25:32 +02:00
/home/admin/config.scripts/cln.backup.sh cln-import-gui setup $_temp
2021-05-03 15:14:50 +02:00
source $_temp 2>/dev/null
2021-05-03 15:24:54 +02:00
sudo rm $_temp 2>/dev/null
2021-05-03 14:00:01 +02:00
# if user canceled upload
2021-05-26 13:05:52 -05:00
if [ "${clnrescue}" == "" ]; then
2021-05-03 14:21:29 +02:00
# signal cancel to the calling script by exit code (3 = exit on lndrescue)
exit 3
2021-05-03 14:00:01 +02:00
fi
# clear setup state from all fomer possible choices (previous loop)
2021-05-26 13:05:52 -05:00
sudo sed -i '/^clnrescue=/d' $SETUPFILE
2021-05-03 14:00:01 +02:00
# store result in setup state
2021-05-26 13:05:52 -05:00
echo "clnrescue='${lndrescue}'" >> $SETUPFILE
2021-05-03 14:00:01 +02:00
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"
2021-07-17 15:25:32 +02:00
/home/admin/config.scripts/cln.backup.sh seed-import-gui $_temp
2021-05-03 15:14:50 +02:00
source $_temp 2>/dev/null
2021-05-03 15:24:54 +02:00
sudo rm $_temp 2>/dev/null
2021-05-03 14:00:01 +02:00
# if user canceled the seed input
if [ "${seedWords}" == "" ]; then
2021-05-03 14:21:29 +02:00
# signal cancel to the calling script by exit code (4 = exit on seedwords)
exit 4
2021-05-03 14:00:01 +02:00
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
2021-07-17 15:25:32 +02:00
echo "seedPassword='${seedPassword}'" >> $SETUPFILE
2021-05-03 14:00:01 +02:00
fi