|
|
|
#!/bin/bash
|
|
|
|
echo "Starting the main menu ..."
|
|
|
|
|
|
|
|
# CONFIGFILE - configuration of RaspiBlitz
|
|
|
|
configFile="/mnt/hdd/raspiblitz.conf"
|
|
|
|
|
|
|
|
# INFOFILE - state data from bootstrap
|
|
|
|
infoFile="/home/admin/raspiblitz.info"
|
|
|
|
|
|
|
|
# MAIN MENU AFTER SETUP
|
|
|
|
source ${infoFile}
|
|
|
|
source ${configFile}
|
|
|
|
|
|
|
|
# get the local network IP to be displayed on the lCD
|
|
|
|
localip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')
|
|
|
|
|
|
|
|
# BASIC MENU INFO
|
|
|
|
HEIGHT=13
|
|
|
|
WIDTH=64
|
|
|
|
CHOICE_HEIGHT=6
|
|
|
|
BACKTITLE="RaspiBlitz"
|
|
|
|
TITLE=""
|
|
|
|
MENU="Choose one of the following options:"
|
|
|
|
OPTIONS=()
|
|
|
|
plus=""
|
|
|
|
if [ "${runBehindTor}" = "on" ]; then
|
|
|
|
plus=" / TOR"
|
|
|
|
fi
|
|
|
|
if [ ${#dynDomain} -gt 0 ]; then
|
|
|
|
plus="${plus} / ${dynDomain}"
|
|
|
|
fi
|
|
|
|
BACKTITLE="${localip} / ${hostname} / ${network} / ${chain}${plus}"
|
|
|
|
|
|
|
|
if [ "${rtlWebinterface}" == "on" ]; then
|
|
|
|
TITLE="Webinterface: http://${localip}:3000"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Basic Options
|
|
|
|
OPTIONS+=(INFO "RaspiBlitz Status Screen" \
|
|
|
|
FUNDING "Fund your on-chain Wallet" \
|
|
|
|
CONNECT "Connect to a Peer" \
|
|
|
|
CHANNEL "Open a Channel with Peer" \
|
|
|
|
SEND "Pay an Invoice/PaymentRequest" \
|
|
|
|
RECEIVE "Create Invoice/PaymentRequest" \
|
|
|
|
SERVICES "Activate/Deactivate Services" \
|
|
|
|
MOBILE "Connect Mobile Wallet" \
|
|
|
|
EXPORT "Macaroons and TLS.cert" \
|
|
|
|
NAME "Change Name/Alias of Node" \
|
|
|
|
PASSWORD "Change Passwords" \
|
|
|
|
CASHOUT "Remove Funds from on-chain Wallet"
|
|
|
|
)
|
|
|
|
|
|
|
|
# dont offer lnbalance/lnchannels on testnet
|
|
|
|
if [ "${chain}" = "main" ]; then
|
|
|
|
OPTIONS+=(lnbalance "Detailed Wallet Balances" \
|
|
|
|
lnchannels "Lightning Channel List")
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Depending Options
|
|
|
|
openChannels=$(sudo -u bitcoin /usr/local/bin/lncli --chain=${network} --network=${chain}net listchannels 2>/dev/null | jq '.[] | length')
|
|
|
|
if [ ${#openChannels} -gt 0 ] && [ ${openChannels} -gt 0 ]; then
|
|
|
|
OPTIONS+=(CLOSEALL "Close all open Channels")
|
|
|
|
fi
|
|
|
|
if [ "${runBehindTor}" == "on" ]; then
|
|
|
|
OPTIONS+=(NYX "Monitor TOR")
|
|
|
|
fi
|
|
|
|
|
|
|
|
# final Options
|
|
|
|
OPTIONS+=(HARDWARE "Run Hardwaretest")
|
|
|
|
OPTIONS+=(SOFTWARE "Run Softwaretest (DebugReport)")
|
|
|
|
OPTIONS+=(UPDATE "Check/Prepare RaspiBlitz Update")
|
|
|
|
OPTIONS+=(OFF "PowerOff RaspiBlitz")
|
|
|
|
OPTIONS+=(X "Console / Terminal")
|
|
|
|
|
|
|
|
CHOICE=$(dialog --clear \
|
|
|
|
--backtitle "$BACKTITLE" \
|
|
|
|
--title "$TITLE" \
|
|
|
|
--menu "$MENU" \
|
|
|
|
$HEIGHT $WIDTH $CHOICE_HEIGHT \
|
|
|
|
"${OPTIONS[@]}" \
|
|
|
|
2>&1 >/dev/tty)
|
|
|
|
|
|
|
|
#clear
|
|
|
|
case $CHOICE in
|
|
|
|
CLOSE)
|
|
|
|
exit 1;
|
|
|
|
;;
|
|
|
|
X)
|
|
|
|
clear
|
|
|
|
echo "***********************************"
|
|
|
|
echo "* RaspiBlitz Commandline"
|
|
|
|
echo "* Here be dragons .. have fun :)"
|
|
|
|
echo "***********************************"
|
|
|
|
echo "LND commandline options: lncli -h"
|
|
|
|
echo "Back to main menu use command: raspiblitz"
|
|
|
|
echo
|
|
|
|
exit 1;
|
|
|
|
;;
|
|
|
|
INFO)
|
|
|
|
walletLocked=$(lncli getinfo 2>&1 | grep -c "Wallet is encrypted")
|
|
|
|
if [ ${walletLocked} -eq 0 ]; then
|
|
|
|
./00infoBlitz.sh
|
|
|
|
echo "Screen is not refreshing itself ... press ENTER to continue."
|
|
|
|
read key
|
|
|
|
fi
|
|
|
|
./00raspiblitz.sh
|
|
|
|
;;
|
|
|
|
lnbalance)
|
|
|
|
lnbalance ${network}
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
NYX)
|
|
|
|
sudo nyx
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
lnchannels)
|
|
|
|
lnchannels ${network}
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
CONNECT)
|
|
|
|
./BBconnectPeer.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
FUNDING)
|
|
|
|
./BBfundWallet.sh
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
CASHOUT)
|
|
|
|
./BBcashoutWallet.sh
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
CHANNEL)
|
|
|
|
./BBopenChannel.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
SEND)
|
|
|
|
./BBpayInvoice.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
RECEIVE)
|
|
|
|
./BBcreateInvoice.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
SERVICES)
|
|
|
|
./00settingsMenuServices.sh
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
CLOSEALL)
|
|
|
|
./BBcloseAllChannels.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
SWITCH)
|
|
|
|
sudo ./95switchMainTest.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
MOBILE)
|
|
|
|
./97addMobileWallet.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
EXPORT)
|
|
|
|
sudo /home/admin/config.scripts/lnd.export.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
NAME)
|
|
|
|
sudo /home/admin/config.scripts/lnd.setname.sh
|
|
|
|
noreboot=$?
|
|
|
|
if [ "${noreboot}" = "0" ]; then
|
|
|
|
sudo -u bitcoin ${network}-cli stop
|
|
|
|
echo "Press ENTER to Reboot."
|
|
|
|
read key
|
|
|
|
sudo shutdown -r now
|
|
|
|
else
|
|
|
|
./00mainMenu.sh
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
HARDWARE)
|
|
|
|
sudo ./05hardwareTest.sh
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
SOFTWARE)
|
|
|
|
sudo ./XXdebugLogs.sh
|
|
|
|
echo "Press ENTER to return to main menu."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
;;
|
|
|
|
PASSWORD)
|
|
|
|
sudo /home/admin/config.scripts/blitz.setpassword.sh
|
|
|
|
noreboot=$?
|
|
|
|
if [ "${noreboot}" = "0" ]; then
|
|
|
|
sudo -u bitcoin ${network}-cli stop
|
|
|
|
echo "Press ENTER to Reboot .."
|
|
|
|
read key
|
|
|
|
sudo shutdown -r now
|
|
|
|
else
|
|
|
|
echo "Press ENTER to return to main menu .."
|
|
|
|
read key
|
|
|
|
./00mainMenu.sh
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
OFF)
|
|
|
|
echo ""
|
|
|
|
echo "LCD turns white when shutdown complete."
|
|
|
|
echo "Then wait 5 seconds and disconnect power."
|
|
|
|
echo "-----------------------------------------------"
|
|
|
|
echo "stop lnd - please wait .."
|
|
|
|
sudo systemctl stop lnd
|
|
|
|
echo "stop ${network}d (1) - please wait .."
|
|
|
|
sudo -u bitcoin ${network}-cli stop
|
|
|
|
sleep 10
|
|
|
|
echo "stop ${network}d (2) - please wait .."
|
|
|
|
sudo systemctl stop ${network}d
|
|
|
|
sleep 3
|
|
|
|
sync
|
|
|
|
echo "starting shutdown ..."
|
|
|
|
sudo shutdown now
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
DELETE)
|
|
|
|
sudo ./XXcleanHDD.sh
|
|
|
|
sudo shutdown -r now
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
UPDATE)
|
|
|
|
/home/admin/99checkUpdate.sh
|
|
|
|
./00mainMenu.sh
|
|
|
|
exit 0
|
|
|
|
;;
|
|
|
|
esac
|