#!/bin/bash

set -e

RED='\033[0;31m'
YELLOW='\033[1;33m'
GREEN='\033[0;32m'
LIGHT_BLUE='\033[1;34m'
NC='\033[0m'

prompt() {
    local PROMPT_MESSAGE=$1
    local DEFAULT_VALUE=$2
    read -p "$PROMPT_MESSAGE [$DEFAULT_VALUE]: " INPUT
    echo "${INPUT:-$DEFAULT_VALUE}"
}

confirm_clean_install() {
    echo -e "${LIGHT_BLUE}=================================================================${NC}"
    echo -e "${LIGHT_BLUE}                      phpMyAdmin Panel Installer v4.0 by VS-Shop${NC}"
    echo -e "${LIGHT_BLUE}=================================================================${NC}"
    echo -e "${YELLOW}This installation script requires a clean installation of Ubuntu 22.04.${NC}"
    echo -e "${YELLOW}If you believe this is a clean installation, please confirm by replying 'Y(es)'.${NC}"
    echo -e "${YELLOW}If it is not a clean installation, please reply 'N(o)' and reinstall the operating system.${NC}"
    echo -e "${LIGHT_BLUE}=================================================================${NC}"
    
    while true; do
        read -p "Is this a clean installation of Ubuntu 22.04? (Y/N): " response
        case $response in
            [Yy]* ) break;;
            [Nn]* ) echo -e "${RED}Please reinstall Ubuntu 22.04 and run the script again.${NC}"; exit;;
            * ) echo -e "${RED}Please answer with 'Y' (Yes) or 'N' (No).${NC}";;
        esac
    done
}

confirm_clean_install

echo -e "${YELLOW}Updating system...${NC}\n"
sudo apt update && sudo apt upgrade -y

echo -e "${YELLOW}Installing required packages...${NC}\n"
sudo apt install -y apache2 mysql-server php php-mysql phpmyadmin

echo -e "${YELLOW}Configuring phpMyAdmin...${NC}\n"
sudo phpenmod mysqli
sudo service apache2 restart

MYSQL_ROOT_PASSWORD=$(prompt "Enter a password for MySQL root user" "root")

echo -e "${YELLOW}Changing MySQL root authentication method to mysql_native_password...${NC}"

sudo mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$MYSQL_ROOT_PASSWORD';" 2>/dev/null
sudo mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "FLUSH PRIVILEGES;" 2>/dev/null

sleep 2

echo -e "${YELLOW}Configuring phpMyAdmin...${NC}"
sudo sed -i "s/127.0.0.1/localhost/" /etc/phpmyadmin/config.inc.php

SERVER_IP=$(hostname -I | awk '{for (i=1; i<=NF; i++) if ($i != "127.0.0.1") {print $i; exit}}')

if [ $? -eq 0 ]; then
    echo -e "${GREEN}phpMyAdmin was installed succesfully, and MySQL root password with authentication method updated! Your phpMyAdmin Access http://$SERVER_IP/phpmyadmin${NC}"
else
    echo -e "${RED}There was an error updating the MySQL root password.${NC}"
fi
