#!/usr/bin/expect -f

set timeout 10
spawn mysql_secure_installation
expect {
  timeout { send_user "\nFailed to get 'Enter current password for root (enter for none):' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Enter current password for root (enter for none):' prompt\n"; exit 1 }
  "Enter current password for root (enter for none):"
}
send "\r"
expect {
  timeout { send_user "\nFailed to get 'Set root password?' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Set root password?' prompt\n"; exit 1 }
  "Set root password?"
}
send "y\r"
expect {
  timeout { send_user "\nFailed to get 'New password:' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'New password:' prompt\n"; exit 1 }
  "New password:"
}
send "$env(DB_ROOT_PASSWORD)\r"

expect {
  timeout { send_user "\nFailed to get 'Re-enter new password:' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Re-enter new password:' prompt\n"; exit 1 }
  "Re-enter new password:"
}
send "$env(DB_ROOT_PASSWORD)\r"

expect {
  timeout { send_user "\nFailed to get 'Remove anonymous users?' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Remove anonymous users?' prompt\n"; exit 1 }
  "Remove anonymous users?"
}
send "y\r"

expect {
  timeout { send_user "\nFailed to get 'Disallow root login remotely?' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Disallow root login remotely?' prompt\n"; exit 1 }
  "Disallow root login remotely?"
}
send "n\r"

expect {
  timeout { send_user "\nFailed to get 'Remove test database and access to it?' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Remove test database and access to it?' prompt\n"; exit 1 }
  "Remove test database and access to it?"
}
send "y\r"

expect {
  timeout { send_user "\nFailed to get 'Reload privilege tables now?' prompt\n"; exit 1 }
  eof { send_user "\nFailed to get 'Reload privilege tables now?' prompt\n"; exit 1 }
  "Reload privilege tables now?"
}
send "y\r"
expect eof