#!/bin/sh
if [ "$USER" = "pi" ]; then

  # check for after setup script
  afterSetupScriptExists=$(ls /home/pi/setup.sh 2>/dev/null | grep -c setup.sh)
  if [ ${afterSetupScriptExists} -eq 1 ]; then
    echo "*** SETUP SCRIPT DETECTED ***"
    sudo cat /home/pi/setup.sh
    sudo /home/pi/setup.sh
    sudo rm /home/pi/setup.sh
    echo "DONE wait 6 secs ... one more reboot needed ... "
    sudo shutdown -r now
  fi

  # load network
  network=`sudo cat /home/admin/.network 2>/dev/null`

  ### USER PI AUTOSTART (LCD Display)
  localip=$(ip addr | grep 'state UP' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d'/')

  # check if bitcoin service is configured
  bitcoinInstalled=$(sudo -u bitcoin ls /mnt/hdd/${network}/ 2>/dev/null | grep -c ${network}.conf)
  if [ ${bitcoinInstalled} -eq 1 ]; then
    # wait enough secs to let bitcoind init
    dialog --pause "  Waiting for ${network} to startup and init ..." 8 58 130
  fi

  # show updating status in loop
  chain=""
  while :
     do

      # refresh network
      network=`sudo cat /home/admin/.network 2>/dev/null`

      # get the setup state
      setupStepExists=$(sudo -u admin ls -la /home/admin/.setup 2>/dev/null | grep -c .setup)
      if [ ${setupStepExists} -eq 1 ]; then
        setupStep=$(sudo -u admin cat /home/admin/.setup)
      else
        setupStep=0
      fi

      if [ ${setupStep} -eq 0 ]; then

        # setup process has not started yet
        l1="Login to your RaspiBlitz with:\n"
        l2="ssh admin@${localip}\n"
        l3="Use password: raspiblitz\n"
        boxwidth=$((${#localip} + 24))
        sleep 3
        dialog --backtitle "RaspiBlitz - Welcome (${setupStep})" --infobox "$l1$l2$l3" 5 ${boxwidth}
        sleep 5

      elif [ ${setupStep} -lt 65 ]; then

          # setup process has not started yet
          l1="Login to your RaspiBlitz with:\n"
          l2="ssh admin@${localip}\n"
          l3="Use your password A\n"
          boxwidth=$((${#localip} + 24))
        sleep 3
        dialog --backtitle "RaspiBlitz - Welcome (${setupStep})" --infobox "$l1$l2$l3" 5 ${boxwidth}
        sleep 5

      elif [ ${setupStep} -lt 100 ]; then

        # setup process init is done and not finished
        if [ ${#chain} -eq 0 ];then
          # get chain if not available before
          chain=$(sudo -u bitcoin ${network}-cli -datadir=/home/bitcoin/.${network} getblockchaininfo 2>/dev/null | jq -r '.chain')
        fi
        lndSynced=$(sudo -u bitcoin /usr/local/bin/lncli --chain=${network} getinfo 2>/dev/null | jq -r '.synced_to_chain' | grep -c true)
        locked=$(sudo tail -n 1 /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2>/dev/null | grep -c unlock)

        if [ ${locked} -gt 0 ]; then

          # special case: LND wallet is locked ---> show unlock info
          l1="!!! LND WALLET IS LOCKED !!!\n"
          l2="Login: ssh admin@${localip}\n"
          l3="Use your Password A\n"
          boxwidth=$((${#localip} + 24))
          dialog --backtitle "RaspiBlitz - Action Required" --infobox "$l1$l2$l3" 5 ${boxwidth}
          sleep 5

        elif [ ${lndSynced} -eq 0 ]; then

          # special case: LND is syncing
          /home/admin/80scanLND.sh
          sleep 20

        else

          # setup in progress without special case - password has been changed
          l1="Login to your RaspiBlitz with:\n"
          l2="ssh admin@${localip}\n"
          l3="Use your Password A\n"
          boxwidth=$((${#localip} + 24))
          sleep 3
          dialog --backtitle "RaspiBlitz - Welcome (${setupStep})" --infobox "$l1$l2$l3" 5 ${boxwidth}
          sleep 10

        fi

      else

        # RaspiBlitz is full Setup

        chain=$(sudo -u bitcoin ${network}-cli -datadir=/home/bitcoin/.${network} getblockchaininfo | jq -r '.chain')
        locked=$(sudo tail -n 1 /mnt/hdd/lnd/logs/${network}/${chain}net/lnd.log 2>/dev/null | grep -c unlock) 
        if [ ${locked} -gt 0 ]; then
        
          # special case: LND wallet is locked ---> show unlock info
          l1="!!! LND WALLET IS LOCKED !!!\n"
          l2="Login: ssh admin@${localip}\n"
          l3="Use your Password A\n"
          boxwidth=$((${#localip} + 24))
          dialog --backtitle "RaspiBlitz - Welcome" --infobox "$l1$l2$l3" 5 ${boxwidth}
          sleep 5
        
        else

          # no special case - show status display
	        /home/admin/00infoBlitz.sh
	        sleep 5
	      
        fi

      fi
    done

else

  echo "plz run as user pi --> su pi"

fi
