mangos/linux/zero.sh
Faded 157c3a1f79 UpdateRealm(zero.sh)
ADDED: updateRealm.sql import line
2015-05-03 08:22:11 -07:00

494 lines
16 KiB
Bash

#!/bin/bash
# _____ ____
# | __|_____ _ _| \ ___ _ _ ___
# | __| | | | | | -_| | |_ -|
# |_____|_|_|_|___|____/|___|\_/|___|
#
# Copyright (C) 2013-2015 EmuDevs <http://emudevs.com/>
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
########################
#LazyMaNGOS .01
#(from the original script "LazyMan Linux")
#
#Supported Cores:
# MaNGOS Zero
#
#Supported Distro(s):
# Debian Based ONLY (for now)
#
# By: Faded
#(faded@emudevs.com)
########################
######
#Binds
######
bldred="\E[1;31;40m"
bldgreen="\E[1;32;40m"
bldyellow="\E[1;33;40m"
bldcyan="\E[1;36;40m"
bldblue="\E[1;34;40m"
bldmagena="\E[1;35;40m"
proccnt="$(grep -c ^processor /proc/cpuinfo)"
options=""
cecho ()
{
local default_msg="No message passed."
message=${1:-$default_msg}
color=${2:-$white}
echo -e "$color $message"
tput sgr0
return
}
header ()
{
clear
echo -e ""
cecho "-------------------------" $bldgreen
cecho " LazyMaNGOS .01 " $bldyellow
cecho "-------------------------" $bldgreen
cecho "- [www.emudevs.com] -" $bldyellow
cecho "-------------------------" $bldgreen
echo -e ""
}
######
#Root Check
######
cecho "Checking if root..." $bldgreen
sleep 1
if [ "$(id -u)" != "0" ]; then
echo -e ""
cecho "This script can ONLY be ran as root!" 1>&2 $bldred
exit 1
fi
sleep 1
header
choice=3
cecho "---------------------------" $bldgreen
cecho "Please choose how to proceed" $bldgreen
cecho "---------------------------" $bldgreen
cecho "1. Install MaNGOS Zero" $bldgreen
cecho "2. Remove MaNGOS Zero" $bldred
cecho "---------------------------" $bldgreen
cecho "Choose (1 or 2)" $bldyellow
echo -n "-> "
while [ $choice -eq 3 ]; do
read choice
if [ $choice -eq 1 ]; then
cecho "---------------------------" $bldgreen
cecho "1. Installing MaNGOS Zero..." $bldgreen
cecho "---------------------------" $bldgreen
echo -e ""
######
#Fetch Username & Password
######
echo -e ""
cecho "---------------------------" $bldgreen
cecho "Adding username: mangos ..." $bldgreen
cecho "---------------------------" $bldgreen
sleep 1
useradd -m -d /home/mangos mangos
echo -e ""
cecho "---------------------------" $bldgreen
cecho "Enter a password for mangos" $bldgreen
cecho "Type it right or the script wont add it!" $bldyellow
cecho "---------------------------" $bldgreen
sleep 1
passwd mangos
sleep 1
echo -e ""
cecho "--------------------" $bldgreen
cecho "Checking for sudo..." $bldgreen
cecho "--------------------" $bldgreen
sleep 1
sudofile="/etc/sudoers"
if [ -f "$sudofile" ]; then
cecho "Sudoers is installed." $bldgreen
cecho "Updating User..." $bldgreen
echo "mangos ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sleep 1
echo ""
cecho "User 'mangos' has been added to sudoers." $bldgreen
else
echo ""
cecho "-------------------------" $bldgreen
cecho "Sudoers is NOT installed." $bldred
cecho "Attempting to install..." $bldgreen
cecho "-------------------------" $bldgreen
if [ $distro = "rh" ]; then
yum -y install sudo
sleep 1
cecho "--------------------------" $bldgreen
cecho "Making sure sudo exists..." $bldgreen
cecho "--------------------------" $bldgreen
if [ -f "$sudofile" ]; then
echo "mangos ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sleep 1
cecho "Sudo exists" $bldgreen
cecho "User 'mangos' has been added to sudoers." $bldgreen
echo -e ""
else
cecho "Still unable to locate sudo." $bldred
cecho "Please make sure /etc/sudoers exists" $bldyellow
cecho "Or contact the coder, (Faded@nomsoftware.com)." $bldyellow
fi
else
if [ $distro = "deb" ]; then
apt-get -y install sudo
sleep 1
cecho "Making sure sudo exists..." $bldyellow
if [ -f "$sudofile" ]; then
echo "mangos ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sleep 1
cecho "Sudo exists" $bldgreen
cecho "User 'mangos' has been added to sudoers." $bldgreen
echo -e ""
else
cecho "Still unable to locate sudo." $bldred
cecho "Please make sure /etc/sudoers exists" $bldyellow
cecho "Or contact the coder, (faded@emudevs.com)." $bldyellow
fi
fi
fi
fi
echo -e ""
cecho "Preparing the server..." $bldgreen
echo -e "This may take a moment."
sleep 4
######
#MaNGOS Zero Core Prepare
######
cecho "-------------------------" $bldgreen
cecho "Installing cmake tools..." $bldgreen
cecho "-------------------------" $bldgreen
sleep 1
apt-get -y install cmake
apt-get -y install cmake-qt-gui
cecho "-------------------------" $bldgreen
cecho "Installing git and compilers..." $bldgreen
cecho "-------------------------" $bldgreen
sleep 1
apt-get -y install git
apt-get -y install g++
apt-get -y install gcc
apt-get -y install make
apt-get -y install autoconf
cecho "-------------------------" $bldgreen
cecho "Installing required libraries..." $bldgreen
cecho "-------------------------" $bldgreen
sleep 1
apt-get -y install libace-ssl-dev
apt-get -y install libace-dev
apt-get -y install libbz2-dev
apt-get -y install libmysql++-dev
apt-get -y install libmysqlclient-dev
apt-get -y install libssl-dev
apt-get -y install zlib1g-dev
apt-get -y install libtool
cecho "-------------------------" $bldgreen
cecho "Installing mysql..." $bldgreen
cecho "-------------------------" $bldgreen
sleep 1
apt-get -y install mysql-client
apt-get -y install mysql-common
apt-get -y install mysql-server
cecho "---------------" $bldgreen
cecho "Finishing up..." $bldgreen
cecho "---------------" $bldgreen
sleep 1
apt-get -y install bash
apt-get -y install screen
apt-get -y install wget
######
#CleanUp & Install
######
echo -e ""
cecho "--------------------" $bldgreen
cecho "Cloning Zero... " $bldgreen
cecho "--------------------" $bldgreen
sleep 1
su -c "cd /home/mangos/ && git clone --recursive -b develop21 https://github.com/mangoszero/server.git" -s /bin/bash mangos
cecho "--------------" $bldgreen
cecho "Cloning Database..." $bldgreen
cecho "--------------" $bldgreen
su -c "cd /home/mangos/ && git clone --recursive -b develop21 https://github.com/mangoszero/database.git" -s /bin/bash mangos
sleep 1
cecho "--------------" $bldgreen
cecho "Preparing Zero..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
######
#Get Zero Options
######
echo -e ""
opt_list=9
cecho "Please choose which options to include:" $bldgreen
cecho "------------------------" $bldgreen
cecho "1. Eluna (only)" $bldyellow
cecho "2. SD2 (only)" $bldyellow
cecho "3. Player Bots (early development)" $bldyellow
cecho "4. Eluna + Player Bots" $bldyellow
cecho "5. SD2 + Player Bots" $bldyellow
cecho "6. Eluna + SD2 + Player Bots" $bldyellow
cecho "7. Eluna + SD2 (recommended)" $bldyellow
cecho "8. None" $bldyellow
cecho "------------------------" $bldgreen
cecho "Choose (1-8)" $bldyellow
echo -n "-> "
while [ $opt_list -eq 9 ]; do
read opt_list
if [ $opt_list -eq 1 ]; then
options="-DSCRIPT_LIB_ELUNA=1 -DSCRIPT_LIB_SD2=0"
cecho "Eluna (only) selected" $bldgreen
sleep 2
else
if [ $opt_list -eq 2 ]; then
options="-DSCRIPT_LIB_SD2=1"
cecho "SD2 (only) selected" $bldgreen
sleep 2
else
if [ $opt_list -eq 3 ]; then
options="-DPLAYERBOTS=1 -DSCRIPT_LIB_SD2=0"
cecho "Player Bots (only) selected" $bldgreen
sleep 2
else
if [ $opt_list -eq 4 ]; then
options="-DSCRIPT_LIB_ELUNA=1 -DPLAYERBOTS=1 -DSCRIPT_LIB_SD2=0"
cecho "Eluna + Player Bots" $bldgreen
sleep 2
else
if [ $opt_list -eq 5 ]; then
options="-DSCRIPT_LIB_SD2=1 -DPLAYERBOTS=1"
cecho "SD2 + Player Bots selected" $bldgreen
sleep 2
else
if [ $opt_list -eq 6 ]; then
options="-DSCRIPT_LIB_ELUNA=1 -DSCRIPT_LIB_SD2=1 -DPLAYERBOTS=1"
cecho "Eluna + SD2 + Player Bots selected" $bldgreen
sleep 2
else
if [ $opt_list -eq 7 ]; then
options="-DSCRIPT_LIB_ELUNA=1 -DSCRIPT_LIB_SD2=1"
cecho "Eluna + SD2 selected" $bldgreen
sleep 2
else
if [ $opt_list -eq 8 ]; then
options="-DSCRIPT_LIB_SD2=0"
cecho "None selected" $bldgreen
sleep 2
else
echo -e ""
cecho "Error: Selection not recognized." $bldred
echo -e ""
sleep 1
cecho "Please choose which options to include:" $bldgreen
cecho "------------------------" $bldgreen
cecho "1. Eluna (only)" $bldyellow
cecho "2. SD2 (only)" $bldyellow
cecho "3. Player Bots (early development)" $bldyellow
cecho "4. Eluna + Player Bots" $bldyellow
cecho "5. SD2 + Player Bots" $bldyellow
cecho "6. Eluna + SD2 + Player Bots" $bldyellow
cecho "7. Eluna + SD2 (recommended)" $bldyellow
cecho "8. None" $bldyellow
cecho "------------------------" $bldgreen
cecho "Choose (1-8)" $bldyellow
echo -n "-> "
opt_list=9
fi
fi
fi
fi
fi
fi
fi
fi
done
echo -e ""
cecho "--------------" $bldgreen
cecho "Running CMake..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
su -c "mkdir /home/mangos/server/build && cd /home/mangos/server/build/ && cmake ../ $options -DCMAKE_INSTALL_PREFIX=/home/mangos/zero" -s /bin/bash mangos
cecho "--------------" $bldgreen
cecho "Compiling Zero..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
if [ $proclist -eq 1 ]; then
su -c "cd /home/mangos/server/build && make" -s /bin/bash mangos
su -c "cd /home/mangos/server/build && make install" -s /bin/bash mangos
else
su -c "cd /home/mangos/server/build && make -j ${proccnt}" -s /bin/bash mangos
su -c "cd /home/mangos/server/build && make install" -s /bin/bash mangos
fi
echo -e ""
cecho "--------------------------------------" $bldgreen
cecho "Please enter your mysql password." $bldgreen
cecho "--------------------------------------" $bldgreen
sleep 1
echo -n "-> "
read mysqlpass
echo -e ""
db="create database realmd; create database mangos; create database characters;
GRANT ALL PRIVILEGES ON realmd.* TO mangos@'127.0.0.1' IDENTIFIED BY 'mangos';
GRANT ALL PRIVILEGES ON mangos.* TO mangos@'127.0.0.1' IDENTIFIED BY 'mangos';
GRANT ALL PRIVILEGES ON characters.* TO mangos@'127.0.0.1' IDENTIFIED BY 'mangos';
flush privileges;"
mysql -u root -p$mysqlpass -e "$db"
echo -e ""
cecho "------------------" $bldgreen
cecho "DB's created." $bldgreen
cecho "SQL Login: mangos" $bldyellow
cecho "SQL Pass: mangos" $bldyellow
cecho "^ Save this info ^" $bldyellow
cecho "------------------" $bldgreen
echo -e ""
cecho "--------------" $bldgreen
cecho "Preparing DB Updates..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
su -c "cat /home/mangos/database/World/Setup/FullDB/*.sql >> /home/mangos/database/World/Setup/FullDB/all.sql" -s /bin/bash mangos
cecho "--------------" $bldgreen
cecho "Importing realmd..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
mysql -u root -p$mysqlpass realmd < /home/mangos/database/Realm/Setup/realmdLoadDB.sql
mysql -u root -p$mysqlpass realmd < /home/mangos/database/Tools/updateRealm.sql
cecho "--------------" $bldgreen
cecho "Importing characters..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
mysql -u root -p$mysqlpass characters < /home/mangos/database/Character/Setup/characterLoadDB.sql
cecho "--------------" $bldgreen
cecho "Importing mangos world..." $bldgreen
cecho "--------------" $bldgreen
sleep 1
mysql -u root -p$mysqlpass mangos < /home/mangos/database/World/Setup/mangosdLoadDB.sql
mysql -u root -p$mysqlpass mangos < /home/mangos/database/World/Setup/FullDB/all.sql
cecho "--------------" $bldgreen
cecho "Import Complete" $bldgreen
cecho "--------------" $bldgreen
echo -e ""
cecho "--------------" $bldgreen
cecho "Adding auto restart scripts" $bldgreen
cecho "--------------" $bldgreen
echo -e ""
su -c "mkdir /home/mangos/zero/scripts" -s /bin/bash mangos
echo 'while true; do
cd /home/mangos/zero/bin
./realmd
wait
done' >> /home/mangos/zero/scripts/realmd_check.sh
echo 'SESSION="realmd"
DAEMON="screen -d -m -S $SESSION /home/mangos/zero/scripts/realmd_check.sh"
screen -r $SESSION -ls -q 2>&1 >/dev/null
echo -e ""
echo "Realmd has been launched into the background."
echo -e ""
if [ $? -le 10 ]; then
echo "Restarting $DAEMON"
$DAEMON
fi
wait' >> /home/mangos/zero/realmd.sh
echo 'while true; do
cd /home/mangos/zero/bin
./mangos
wait
done
' >> /home/mangos/zero/scripts/mangos_check.sh
echo 'SESSION="mangos"
DAEMON="screen -d -m -S $SESSION /home/mangos/zero/scripts/mangos_check.sh"
screen -r $SESSION -ls -q 2>&1 >/dev/null
echo -e ""
echo "Mangos World has been launched into the background."
echo -e ""
if [ $? -le 10 ]; then
echo "Restarting $DAEMON"
$DAEMON
fi
wait' >> /home/mangos/zero/mangos.sh
chown -R mangos:mangos /home/mangos/zero/*.sh
su -c "chmod +x /home/mangos/zero/*.sh" -s /bin/bash mangos
su -c "mv /home/mangos/zero/etc/realmd.conf.dist /home/mangos/zero/etc/realmd.conf" -s /bin/bash mangos
su -c "mv /home/mangos/zero/etc/mangos.conf.dist /home/mangos/zero/etc/mangos.conf" -s /bin/bash mangos
su -c "mv /home/mangos/zero/etc/ahbot.conf.dist /home/mangos/zero/etc/ahbot.conf" -s /bin/bash mangos
echo -e ""
cecho "------------------" $bldgreen
cecho "Auto Restart Scripts" $bldgreen
cecho " Created " $bldyellow
cecho "First run ./realmd then run ./mangos" $bldyellow
cecho "Both scripts located in /home/mangos/zero/" $bldyellow
cecho "------------------" $bldgreen
echo -e ""
echo "
########################
#LazyMaNGOS .01
########################
- Important Information -
DB User: mangos
DB Pass: mangos
Server Location: /home/mangos/zero
Config Location: /home/mangos/zero/etc
- What to do next -
From here on out, ONLY run the server as mangos the user
Edit your configuration files as needed.
Then enter the zero/bin directory and run
./realmd &
./mangos &
& means it will run in the background.
Option 2:
Use the auto scripts in /zero/
run ./realmd.sh & ./mangos.sh
Don't forget to add your realm to the realms
table in the realmd database.
Support: www.emudevs.com | www.getmangos.eu
" >> /home/mangos/Lazy-README
echo -e ""
cecho "------------------" $bldgreen
cecho "LazyMaNGOS Complete" $bldgreen
cecho "Please view the README in /home/mangos/" $bldgreen
cecho "------------------" $bldgreen
echo -e ""
exit
else
if [ $choice -eq 2 ]; then
cecho "------------------" $bldgreen
cecho "Removing MaNGOS Zero..." $bldgreen
cecho "------------------" $bldgreen
sleep 2
deluser mangos && rm -rf /home/mangos
cecho "------------------" $bldgreen
cecho "MaNGOS Zero has been removed" $bldgreen
cecho "You will need to manually remove the databases" $bldgreen
cecho "------------------" $bldgreen
exit
else
echo -e ""
cecho "Error: Selection not recognized." $bldred
echo -e ""
cecho "---------------------------" $bldgreen
cecho "Please choose how to proceed" $bldgreen
cecho "---------------------------" $bldgreen
cecho "1. Install MaNGOS Zero" $bldgreen
cecho "2. Remove MaNGOS Zero" $bldred
cecho "---------------------------" $bldgreen
cecho "Choose (1 or 2)" $bldyellow
echo -n "-> "
choice=3
fi
fi
done
#END