#!/bin/bash # command info if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then echo "small config script to autounlock lnd after restart" echo "lnd.autounlock.sh [on|off] [?passwordC]" exit 1 fi # 1. parameter [on|off] turn="off" if [ "$1" = "1" ] || [ "$1" = "on" ]; then turn="on"; fi # 2. parameter [?passwordC] passwordC=$2 # run interactive if 'turn on' && no further parameters if [ "${turn}" = "on" ] && [ ${#passwordC} -eq 0 ]; then dialog --backtitle "LND Auto-Unlock" --inputbox "ENTER your PASSWORD C: For more details see chapter in GitHub README 'Auto-unlock LND on startup' https://github.com/rootzoll/raspiblitz Password C will be stored on the device. " 13 52 2>./.tmp passwordC=$( cat ./.tmp ) # test if empty if [ ${#passwordC} -eq 0 ]; then echo "CANCEL input cannot be empty" sleep 3 exit 1 fi # test if correct echo "testing password .. please wait" sudo systemctl restart lnd sleep 4 result=$(sudo python /home/admin/config.scripts/lnd.unlock.py ${passwordC}) invalid=$(echo "${result}" | grep -c 'invalid') if [ ${invalid} -gt 0 ];then echo "PASSWORD C is wrong - try again or cancel" sleep 3 sudo /home/admin/config.scripts/lnd.autounlock.sh on exit 1 fi shred ./.tmp fi # config file configFile="/mnt/hdd/raspiblitz.conf" # lnd conf file lndConfig="/mnt/hdd/lnd/lnd.conf" # check if config file exists configExists=$(ls ${configFile} | grep -c '.conf') if [ ${configExists} -eq 0 ]; then echo "FAIL - missing ${configFile}" exit 1 fi # make sure entry line for 'autoUnlock' exists entryExists=$(cat ${configFile} | grep -c 'autoUnlock=') if [ ${entryExists} -eq 0 ]; then echo "autoUnlock=" >> ${configFile} fi # switch on if [ "$1" = "1" ] || [ "$1" = "on" ]; then # make sure config values are uncommented sudo sed -i "s/^#restlisten=.*/restlisten=/g" /mnt/hdd/lnd/lnd.conf sudo sed -i "s/^#tlsextraip=.*/tlsextraip=/g" /mnt/hdd/lnd/lnd.conf # make sure config values exits exists=$(sudo cat /mnt/hdd/lnd/lnd.conf | grep -c 'restlisten=') if [ ${exists} -eq 0 ]; then sudo sed -n -i 'p;4a restlisten=' /mnt/hdd/lnd/lnd.conf fi exists=$(sudo cat /mnt/hdd/lnd/lnd.conf | grep -c 'tlsextraip') if [ ${exists} -eq 0 ]; then sudo sed -n -i 'p;5a tlsextraip=' /mnt/hdd/lnd/lnd.conf fi # set needed config values sudo sed -i "s/^restlisten=.*/restlisten=0.0.0.0:8080/g" /mnt/hdd/lnd/lnd.conf sudo sed -i "s/^tlsextraip=.*/tlsextraip=0.0.0.0/g" /mnt/hdd/lnd/lnd.conf # refresh TLS cert sudo /home/admin/config.scripts/lnd.newtlscert.sh echo "switching the Auto-Unlock ON" # setting value in raspi blitz config sudo sed -i "s/^autoUnlock=.*/autoUnlock=on/g" /mnt/hdd/raspiblitz.conf # password C needs to be stored on RaspiBlitz echo "storing password for root in /root/lnd.autounlock.pwd" sudo sh -c "echo \"${passwordC}\" > /root/lnd.autounlock.pwd" echo "Auto-Unlock is now ON" echo "NOTE: you may need to reconnect mobile/external wallets (macaroon/tls)" fi # switch off if [ "$1" = "0" ] || [ "$1" = "off" ]; then echo "switching the Auto-Unlock OFF" # setting value in raspi blitz config sudo sed -i "s/^autoUnlock=.*/autoUnlock=off/g" /mnt/hdd/raspiblitz.conf # delete password C securly echo "shredding password on for RaspiBlitz Auto-Unlock" sudo shred -u /root/lnd.autounlock.pwd 2>/dev/null echo "Auto-Unlock is now OFF" fi