#!/bin/sh
echo Lightsail: Initializing Instance.
cat > /etc/ssh/lightsail_instance_ca.pub << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCeqwUVM/e/D+Rh1tVV0Nw+p02fVrnpOz11FpfygDh1iqu6OsKUD3PW0cwOTWIMATYsBnc9vq3ZS4M7bRgdNtjGkzUW++ft7B5lxHbXLKz5IM2dgwJRPrTB3Uv005LCGk9euPD4UnnempN6HEGBau0VANLLRDvQrAMmrkqpoGv4z5E/VlvlN0DT8aELKfBJjUi0iRZmGyXob4uPOunMAhu7I0dNlGKDlwf0TscT4FJ09elP0lppbQVB59+LW1ZQHj3Qhc06elY7VRNgLVE6lzazTMnruFbgj9u+8kHc/wDaPCHbLAu8SUGMrqUf1Jb9ysHMZKdzrp4d4UV+20C91nzC9+u1s4n/MuG+F04wKWWt7AO/9/Sisvm+7Fj9QcpPKp1z/4Y2mBk6ab1EYtpHfCwQ4C+0qgVMbIc2u+96Fjit6rUyr3qvlNcgQPgvqgL5b8ckWiIYClfXGKJH3lg4ZDAppDs5qqQ2ikrnhSxa/XoCFWDjUVozI56n+Qx/dHz/2C9jwEdgKEjzJ4nNWF2XCYUt0zZM/uJGpQgimnAl86+t0j5ZWTnuDaN5JZtN4EJrmP85V21VPmCYrhG3H7HO5psvmzmLiyoUIqeQ3gLuPb1Ee58M4I/dSIPN7SuI9lmoIgs1nQhIKetrRYANw/WIpKVS+fxZq8zNItR3NyuG+7QJvQ==
EOF
echo Lightsail: SSH CA PubKey created.
echo >> /etc/ssh/sshd_config
echo 'TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub' >> /etc/ssh/sshd_config
echo Lightsail: SSH CA PubKey regstrd.

service ssh restart
echo Lightsail: ssh restarted.
readonly pw_pathname=/home/bitnami/bitnami_application_password
touch $pw_pathname
chmod 600 $pw_pathname
chown bitnami.bitnami $pw_pathname

if [ -f /var/log/boot.log ]; then
   cmd='cat $(ls -d1tr /var/log/boot.log*)'
elif [ -f /var/log/syslog ]; then
   cmd='cat $(ls -d1tr /var/log/syslog*)'
else
   cmd='/usr/bin/journalctl -u bitnami --since -2h'
fi
sleep_time=3
total_time=0
if [ ! -s $pw_pathname ]; then
  until [ $total_time -ge "600" ]; do
  password=$( eval "$cmd" | grep -a "Bitnami application password" | tail -n1 | grep -oE "'(.*?)'" | tr -d "'" )
  if [ -n "$password" ]; then
    echo $password >> $pw_pathname
    echo Lightsail: Bitnami app password stored in $pw_pathname
    break
  fi
  echo no password found, will retry in $sleep_time seconds
  total_time=$(( total_time + sleep_time ))
  sleep $sleep_time
  done
fi

