Skip to content

Commit

Permalink
-refactoring bash scripts;
Browse files Browse the repository at this point in the history
-fixed macos version;
-recompilation replace-1.0.jar on jdk version 11;
-added manifest file;
  • Loading branch information
Limraj committed Apr 29, 2024
1 parent 4c3d38e commit fa6761f
Show file tree
Hide file tree
Showing 10 changed files with 269 additions and 247 deletions.
3 changes: 3 additions & 0 deletions META-INF/MANIFEST
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Built-By: kamiljarmusik
Version: 1.4.1
10 changes: 10 additions & 0 deletions java/get_java_home.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
JDK_BASE="$1";
MACHINE_TYPE=$(uname -m);
JAVA_HOME="";
if [ ${MACHINE_TYPE} == "arm64" ]; then
JAVA_HOME="${JDK_BASE}/Contents/Home";
else
JAVA_HOME="${JDK_BASE}";
fi
echo "${JAVA_HOME}";
72 changes: 39 additions & 33 deletions java/java_install.sh
Original file line number Diff line number Diff line change
@@ -1,49 +1,55 @@
#!/bin/bash
export JAVA_HOME="$1"
JAVA_VERSION="$2"
JAVA_UPDATE="$3"
JDK_BASE="$4"
JAVA_BIN_DIR="$JAVA_HOME/bin"
JAVA_VERSION_ENCODED="${JAVA_VERSION}%2B${JAVA_UPDATE}"
JAVA_FULL_VERSION="${JAVA_VERSION}_${JAVA_UPDATE}"
JDK_DEST="jdk-${JAVA_VERSION}+${JAVA_UPDATE}"
JAVA_ARCH=""
MACHINE_TYPE=`uname -m`
SERVER_MYSQL_DEST=""
SHELL_MYSQL_DEST=""
JAVA_BASE="$1";
JAVA_VERSION="$2";
JAVA_UPDATE="$3";
JDK_BASE="$4";

JAVA_HOME=$("${JAVA_BASE}"/get_java_home.sh "${JDK_BASE}" | tail -n 1);
JAVA_BIN_DIR="${JAVA_HOME}/bin";
JAVA_VERSION_ENCODED="${JAVA_VERSION}%2B${JAVA_UPDATE}";
JAVA_FULL_VERSION="${JAVA_VERSION}_${JAVA_UPDATE}";
JDK_DEST="jdk-${JAVA_VERSION}+${JAVA_UPDATE}";
JAVA_ARCH="";
MACHINE_TYPE=$(uname -m);
SERVER_MYSQL_DEST="";
SHELL_MYSQL_DEST="";

if ! command -v wget &> /dev/null
then
echo "wget could not be found then JDK version ${JAVA_FULL_VERSION} installation stop"
exit 1
echo "wget could not be found then JDK version ${JAVA_FULL_VERSION} installation stop";
exit 1;
fi

if [ ${MACHINE_TYPE} == 'arm64' ]; then
echo "arm64 (Apple Silicon M1/M2) machine detected"
JAVA_ARCH="OpenJDK11U-jdk_aarch64_mac_hotspot_"
echo "arm64 (Apple Silicon M1/M2/M3) machine detected";
JAVA_ARCH="OpenJDK11U-jdk_aarch64_mac_hotspot_";
elif [ ${MACHINE_TYPE} == 'aarch64' ]; then
echo "raspberry arm machine detected"
JAVA_ARCH="OpenJDK11U-jdk_aarch64_linux_hotspot_"
echo "raspberry arm machine detected";
JAVA_ARCH="OpenJDK11U-jdk_aarch64_linux_hotspot_";
elif [ "${MACHINE_TYPE}" == 'x86_64' ] || [ "${MACHINE_TYPE}" == 'x64' ]; then
echo "64-bit machine detected"
JAVA_ARCH="OpenJDK11U-jdk_x64_linux_hotspot_"
echo "64-bit machine detected";
JAVA_ARCH="OpenJDK11U-jdk_x64_linux_hotspot_";
else
echo "x86 architecture, 32-bit is not supported"
echo "x86 architecture, 32-bit is not supported";
fi

if [ ! -d "${JAVA_BIN_DIR}" ] && [ ! -z ${JAVA_ARCH} ]; then
JDK_TAR_GZ_FILE=${JAVA_ARCH}${JAVA_FULL_VERSION}".tar.gz"
mkdir -p "$JDK_BASE"
cd "$JDK_BASE"
JDK_TAR_GZ_FILE=${JAVA_ARCH}${JAVA_FULL_VERSION}".tar.gz";
mkdir -p "${JDK_BASE}";
cd "${JDK_BASE}";
if [ ! -f "$JDK_TAR_GZ_FILE" ]; then
wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-"${JAVA_VERSION_ENCODED}"/"${JDK_TAR_GZ_FILE}"
wget https://github.com/adoptium/temurin11-binaries/releases/download/jdk-"${JAVA_VERSION_ENCODED}"/"${JDK_TAR_GZ_FILE}";
if [ $? -ne 0 ]; then
echo "Download ${JDK_TAR_GZ_FILE} failed then JDK version ${JAVA_FULL_VERSION} installation stop";
exit 1;
fi
fi
tar -xvf "${JDK_TAR_GZ_FILE}" -C "$JDK_BASE"
cd "$JDK_BASE/${JDK_DEST}"
mv * "$JDK_BASE"
cd ..
rm -rf "${JDK_DEST}"
#rm -f "${JDK_TAR_GZ_FILE}"
echo "JDK version ${JAVA_FULL_VERSION} installed"
tar -xvf "${JDK_TAR_GZ_FILE}" -C "${JDK_BASE}";
cd "${JDK_BASE}/${JDK_DEST}";
mv * "${JDK_BASE}";
cd ..;
rm -rf "${JDK_DEST}";
#rm -f "${JDK_TAR_GZ_FILE}";
echo "JDK version ${JAVA_FULL_VERSION} installed";
fi

echo "${JAVA_HOME}";
186 changes: 99 additions & 87 deletions mysql/mysql_install.sh
Original file line number Diff line number Diff line change
@@ -1,139 +1,151 @@
#!/bin/bash
MYSQL_MAJOR_VERSION=$1
MYSQL_MINOR_VERSION=$2
MYSQL_PATCH_VERSION=$3

MYSQL_VERSION="${MYSQL_MAJOR_VERSION}.${MYSQL_MINOR_VERSION}.${MYSQL_PATCH_VERSION}"
MYSQL_INSTALLER_HOME=$(dirname "$(realpath "$0")")
export MYSQL_HOME="${MYSQL_INSTALLER_HOME}/server"
export SHELL_HOME="${MYSQL_INSTALLER_HOME}/client"
export DATADIR="$MYSQL_HOME/data"

INIT_SCHEMA="${MYSQL_INSTALLER_HOME}/scadalts.sql"
COPIED_INIT_SCHEMA="$MYSQL_HOME/scadalts.sql"
MY_CNF="${MYSQL_INSTALLER_HOME}/my.cnf"
COPIED_MY_CNF="$MYSQL_HOME/my.cnf"
SERVER_BIN_DIR="$MYSQL_HOME/bin"
CLIENT_BIN_DIR="$SHELL_HOME/bin"

MYSQL_PORT=-1
MYSQL_USERNAME=""
MYSQL_PASSWORD=""
MYSQL_ROOT_PASSWORD=""

MACHINE_TYPE=`uname -m`

SERVER_MYSQL_DEST=""
SHELL_MYSQL_DEST=""

PORT_REGEX='^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([0-5]{0,5})|([0-9]{1,4}))$'
HOSTNAME_REGEX="^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(localhost)|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$"
USERNAME_REGEX='^[a-zA-Z0-9_-]+$'
MYSQL_MAJOR_VERSION=$1;
MYSQL_MINOR_VERSION=$2;
MYSQL_PATCH_VERSION=$3;
JAVA_HOME=$4;

MYSQL_VERSION="${MYSQL_MAJOR_VERSION}.${MYSQL_MINOR_VERSION}.${MYSQL_PATCH_VERSION}";
MYSQL_INSTALLER_HOME=$(dirname "$(realpath "$0")");
export MYSQL_HOME="${MYSQL_INSTALLER_HOME}/server";
export SHELL_HOME="${MYSQL_INSTALLER_HOME}/client";
export DATADIR="$MYSQL_HOME/data";

INIT_SCHEMA="${MYSQL_INSTALLER_HOME}/scadalts.sql";
COPIED_INIT_SCHEMA="$MYSQL_HOME/scadalts.sql";
MY_CNF="${MYSQL_INSTALLER_HOME}/my.cnf";
COPIED_MY_CNF="$MYSQL_HOME/my.cnf";
SERVER_BIN_DIR="$MYSQL_HOME/bin";
CLIENT_BIN_DIR="$SHELL_HOME/bin";

MYSQL_PORT=-1;
MYSQL_USERNAME="";
MYSQL_PASSWORD="";
MYSQL_ROOT_PASSWORD="";

MACHINE_TYPE=$(uname -m);

SERVER_MYSQL_DEST="";
SHELL_MYSQL_DEST="";

PORT_REGEX='^((6553[0-5])|(655[0-2][0-9])|(65[0-4][0-9]{2})|(6[0-4][0-9]{3})|([1-5][0-9]{4})|([0-5]{0,5})|([0-9]{1,4}))$';
HOSTNAME_REGEX="^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(localhost)|^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$";
USERNAME_REGEX='^[a-zA-Z0-9_-]+$';

if ! command -v wget &> /dev/null
then
echo "wget could not be found then MySQL Community Server version ${MYSQL_VERSION} installation stop"
exit 1
echo "wget could not be found then MySQL Community Server version ${MYSQL_VERSION} installation stop";
exit 1;
fi

if [ ${MACHINE_TYPE} == 'arm64' ]; then
echo "arm64 (Apple Silicon M1/M2) machine detected"
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-macos13-arm64"
echo "arm64 (Apple Silicon M1/M2/M3) machine detected";
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-macos14-arm64";
elif [ "${MACHINE_TYPE}" == 'aarch64' ]; then
echo "raspberry ARM machine detected"
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-linux-glibc2.17-aarch64-minimal"
echo "Raspberry ARM machine detected";
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-linux-glibc2.17-aarch64-minimal";
elif [ "${MACHINE_TYPE}" == 'x86_64' ] || [ "${MACHINE_TYPE}" == 'x64' ]; then
echo "64-bit machine detected"
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-linux-glibc2.17-x86_64-minimal"
SHELL_MYSQL_DEST="mysql-shell-${MYSQL_VERSION}-linux-glibc2.12-x86-64bit"
echo "64-bit machine detected";
SERVER_MYSQL_DEST="mysql-${MYSQL_VERSION}-linux-glibc2.17-x86_64-minimal";
SHELL_MYSQL_DEST="mysql-shell-${MYSQL_VERSION}-linux-glibc2.12-x86-64bit";
else
echo "x86 32-bit architecture is not supported"
echo "x86 32-bit architecture is not supported";
fi

if [ ! -d "${SERVER_BIN_DIR}" ] && [ ! -z "${SERVER_MYSQL_DEST}" ]; then

SERVER_MSQL_TAR_FILE="${SERVER_MYSQL_DEST}.tar"
SERVER_MSQL_TAR_FILE="${SERVER_MYSQL_DEST}.tar";

if [ ${MACHINE_TYPE} == 'arm64' ]; then
SERVER_MSQL_TAR_XZ_FILE="${SERVER_MYSQL_DEST}.tar.gz"
SERVER_MSQL_TAR_FILE="${SERVER_MYSQL_DEST}.tar.gz";
SERVER_MSQL_TAR_XZ_FILE="${SERVER_MYSQL_DEST}.tar.gz";
else
SERVER_MSQL_TAR_XZ_FILE="${SERVER_MYSQL_DEST}.tar.xz"
SERVER_MSQL_TAR_XZ_FILE="${SERVER_MYSQL_DEST}.tar.xz";
fi
mkdir -p "$MYSQL_HOME"
cd "$MYSQL_HOME"
mkdir -p "$MYSQL_HOME";
cd "$MYSQL_HOME";
if [ ! -f "$SERVER_MSQL_TAR_FILE" ]; then
wget "https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAJOR_VERSION}.${MYSQL_MINOR_VERSION}/${SERVER_MSQL_TAR_FILE}"
wget "https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_MAJOR_VERSION}.${MYSQL_MINOR_VERSION}/${SERVER_MSQL_TAR_FILE}";
if [ $? -ne 0 ]; then
echo "Download ${SERVER_MSQL_TAR_FILE} failed then MySQL Community Server version ${MYSQL_VERSION} installation stop";
exit 1;
fi
fi
tar -xvf "${SERVER_MSQL_TAR_FILE}" -C "$MYSQL_HOME"
tar -xvf "${SERVER_MSQL_TAR_XZ_FILE}" -C "$MYSQL_HOME"
cd "$MYSQL_HOME/${SERVER_MYSQL_DEST}"
mv * "$MYSQL_HOME"
cd ..
rm -rf "${SERVER_MYSQL_DEST}"
tar -xvf "${SERVER_MSQL_TAR_FILE}" -C "$MYSQL_HOME";
tar -xvf "${SERVER_MSQL_TAR_XZ_FILE}" -C "$MYSQL_HOME";
cd "$MYSQL_HOME/${SERVER_MYSQL_DEST}";
mv -f * "$MYSQL_HOME";
cd ..;
rm -rf "${SERVER_MYSQL_DEST}";
#rm -f "${SERVER_MSQL_TAR_FILE}"
rm -f *.tar.xz
rm -f *.tar.gz
cp -a "${MY_CNF}" "${COPIED_MY_CNF}"
cp -a "${INIT_SCHEMA}" "${COPIED_INIT_SCHEMA}"
#rm -f *.tar.xz
#rm -f *.tar.gz

if [ ! -d "${SERVER_BIN_DIR}" ]; then
echo "bin could not be found then MySQL Community Server version ${MYSQL_VERSION} installation failed";
exit 1;
fi

cp -a "${MY_CNF}" "${COPIED_MY_CNF}";
cp -a "${INIT_SCHEMA}" "${COPIED_INIT_SCHEMA}";

while [ ${MYSQL_PORT} -eq -1 ] || ! [[ ${MYSQL_PORT} =~ ${PORT_REGEX} ]]
do
echo -n "[MySQL Community Server] Enter port: "
read -r MYSQL_PORT
echo -n "[MySQL Community Server] Enter port: ";
read -r MYSQL_PORT;
done
echo "port = ${MYSQL_PORT}" >> "${COPIED_MY_CNF}"
echo "mysqlx_port = 3${MYSQL_PORT}" >> "${COPIED_MY_CNF}"
echo "port = ${MYSQL_PORT}" >> "${COPIED_MY_CNF}";
echo "mysqlx_port = 3${MYSQL_PORT}" >> "${COPIED_MY_CNF}";

while [ -z "${MYSQL_USERNAME}" ] || ! [[ ${MYSQL_USERNAME} =~ ${USERNAME_REGEX} ]]
do
echo -n "[MySQL Community Server] Enter username: "
read -r MYSQL_USERNAME
echo -n "[MySQL Community Server] Enter username: ";
read -r MYSQL_USERNAME;
done
echo "user = ${MYSQL_USERNAME}" >> "${COPIED_MY_CNF}"
echo "user = ${MYSQL_USERNAME}" >> "${COPIED_MY_CNF}";

while [ -z "${MYSQL_PASSWORD}" ]
do
echo -n "[MySQL Community Server] Enter password: "
read -r MYSQL_PASSWORD
echo -n "[MySQL Community Server] Enter password: ";
read -r MYSQL_PASSWORD;
done

while [ -z "${MYSQL_HOST}" ] || ! [[ ${MYSQL_HOST} =~ ${HOSTNAME_REGEX} ]]
do
echo -n "[MySQL Community Server] Enter hostname: "
read -r MYSQL_HOST
echo -n "[MySQL Community Server] Enter hostname: ";
read -r MYSQL_HOST;
done
"${JAVA_HOME}"/bin/java -jar ../replace-1.0.jar -n "CREATE USER IF NOT EXISTS '${MYSQL_USERNAME}'@'${MYSQL_HOST}' IDENTIFIED BY '';GRANT ALL ON scadalts.* TO '${MYSQL_USERNAME}'@'${MYSQL_HOST}';FLUSH PRIVILEGES;" -f "${COPIED_INIT_SCHEMA}" -d "mysql" -p "${MYSQL_PASSWORD}"
"${JAVA_HOME}"/bin/java -jar ../replace-1.0.jar -n "CREATE USER IF NOT EXISTS '${MYSQL_USERNAME}'@'${MYSQL_HOST}' IDENTIFIED BY '';GRANT ALL ON scadalts.* TO '${MYSQL_USERNAME}'@'${MYSQL_HOST}';FLUSH PRIVILEGES;" -f "${COPIED_INIT_SCHEMA}" -d "mysql" -p "${MYSQL_PASSWORD}";

while [ -z "${MYSQL_ROOT_PASSWORD}" ]
do
echo -n "[MySQL Community Server] Enter root password: "
read -r MYSQL_ROOT_PASSWORD
echo -n "[MySQL Community Server] Enter root password: ";
read -r MYSQL_ROOT_PASSWORD;
done
"${JAVA_HOME}"/bin/java -jar ../replace-1.0.jar -n "ALTER USER 'root'@'${MYSQL_HOST}' IDENTIFIED BY '';FLUSH PRIVILEGES;" -f "${COPIED_INIT_SCHEMA}" -d "mysql" -p "${MYSQL_ROOT_PASSWORD}"
echo "MySQL Community Server version ${MYSQL_VERSION} installed"
"${JAVA_HOME}"/bin/java -jar ../replace-1.0.jar -n "ALTER USER 'root'@'${MYSQL_HOST}' IDENTIFIED BY '';FLUSH PRIVILEGES;" -f "${COPIED_INIT_SCHEMA}" -d "mysql" -p "${MYSQL_ROOT_PASSWORD}";
echo "MySQL Community Server version ${MYSQL_VERSION} installed";
fi

if [ ! -d "${CLIENT_BIN_DIR}" ] && [ ! -z "${SHELL_MYSQL_DEST}" ]; then

SHELL_MYSQL_TAR_GZ_FILE="${SHELL_MYSQL_DEST}.tar.gz"
SHELL_MYSQL_TAR_GZ_FILE="${SHELL_MYSQL_DEST}.tar.gz";

mkdir -p "$SHELL_HOME"
cd "$SHELL_HOME"
mkdir -p "$SHELL_HOME";
cd "$SHELL_HOME";
if [ ! -f "$SHELL_MYSQL_TAR_GZ_FILE" ]; then
wget "https://dev.mysql.com/get/Downloads/MySQL-Shell/${SHELL_MYSQL_TAR_GZ_FILE}"
wget "https://dev.mysql.com/get/Downloads/MySQL-Shell/${SHELL_MYSQL_TAR_GZ_FILE}";
fi
tar -xvf "${SHELL_MYSQL_TAR_GZ_FILE}" -C "$SHELL_HOME"
cd "$SHELL_HOME/${SHELL_MYSQL_DEST}"
mv * "$SHELL_HOME"
cd ..
rm -rf "${SHELL_MYSQL_DEST}"
rm -f "${SHELL_MYSQL_TAR_GZ_FILE}"
echo "MySQL Shell version ${MYSQL_VERSION} installed"
tar -xvf "${SHELL_MYSQL_TAR_GZ_FILE}" -C "$SHELL_HOME";
cd "$SHELL_HOME/${SHELL_MYSQL_DEST}";
mv * "$SHELL_HOME";
cd ..;
rm -rf "${SHELL_MYSQL_DEST}";
#rm -f "${SHELL_MYSQL_TAR_GZ_FILE}"
echo "MySQL Shell version ${MYSQL_VERSION} installed";
fi

if [ -d "${SERVER_BIN_DIR}" ] && [ ! -d "$DATADIR" ]; then
mkdir -p "$DATADIR"
cd "${SERVER_BIN_DIR}"
./mysqld --defaults-file="$MYSQL_HOME/my.cnf" --initialize-insecure --datadir "$DATADIR" --user="${MYSQL_USERNAME}" --init-file="${COPIED_INIT_SCHEMA}" --console
echo "MySQL Community Server version ${MYSQL_VERSION} configured"
mkdir -p "$DATADIR";
cd "${SERVER_BIN_DIR}";
./mysqld --defaults-file="$MYSQL_HOME/my.cnf" --initialize-insecure --datadir "$DATADIR" --user="${MYSQL_USERNAME}" --init-file="${COPIED_INIT_SCHEMA}" --console;
echo "MySQL Community Server version ${MYSQL_VERSION} configured";
fi
Binary file modified mysql/replace-1.0.jar
100644 → 100755
Binary file not shown.
Loading

0 comments on commit fa6761f

Please sign in to comment.