You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
235 lines
7.4 KiB
235 lines
7.4 KiB
#!/bin/bash
|
|
|
|
|
|
|
|
# Update The APT Cache
|
|
echo -e "\033[34mUpdating APT Cache, Please Wait...\e[0m"
|
|
apt-get update &>> /dev/null
|
|
|
|
# Checking lsb_release
|
|
if [ ! -x /usr/bin/lsb_release ]; then
|
|
echo -e "\033[31mThe lsb_release Command Not Found\e[0m"
|
|
echo -e "\033[34mInstalling lsb-release, Please Wait...\e[0m"
|
|
apt-get -y install lsb-release &>> /dev/null
|
|
fi
|
|
|
|
# Make Variables Available For Later Use
|
|
LOGDIR=/var/log/easyengine
|
|
INSTALLLOG=/var/log/easyengine/install.log
|
|
LINUX_DISTRO=$(lsb_release -i |awk '{print $3}')
|
|
|
|
# Checking Linux Distro Is Ubuntu
|
|
if [ "$LINUX_DISTRO" != "Ubuntu" ] && [ "$LINUX_DISTRO" != "Debian" ]
|
|
then
|
|
echo -e "\033[31mEasyEngine (ee) Is Made For Ubuntu And Debian Only As Of Now\e[0m"
|
|
echo -e "\033[31mYou Are Free To Fork EasyEngine (ee): https://github.com/rtCamp/easyengine/fork\e[0m"
|
|
exit 100
|
|
fi
|
|
|
|
# Checking Permissions
|
|
if [[ $EUID -ne 0 ]]
|
|
then
|
|
echo -e "\033[31mSudo Privilege Required...\e[0m"
|
|
echo -e "\033[31mUses:\e[0m\033[34m curl -sL rt.cx/ee | sudo bash\e[0m"
|
|
exit 100
|
|
fi
|
|
|
|
# Capture Errors
|
|
OwnError()
|
|
{
|
|
echo -e "[ `date` ] \033[31m$@\e[0m" | tee -ai $INSTALLLOG
|
|
exit 101
|
|
}
|
|
|
|
|
|
# Pre Checks To Avoid Later Screw Ups
|
|
|
|
# Checking Logs Directory
|
|
if [ ! -d $LOGDIR ]
|
|
then
|
|
echo -e "\033[34mCreating EasyEngine (ee) Log Directory, Please Wait...\e[0m"
|
|
mkdir -p $LOGDIR || OwnError "Unable To Create Log Directory $LOGDIR"
|
|
fi
|
|
|
|
# Checking Tee
|
|
if [ ! -x /usr/bin/tee ]
|
|
then
|
|
echo -e "\033[31mTee Command Not Found\e[0m"
|
|
echo -e "\033[34mInstalling Tee, Please Wait...\e[0m"
|
|
apt-get -y install coreutils &>> $INSTALLLOG || OwnError "Unable to install tee"
|
|
fi
|
|
|
|
echo &>> $INSTALLLOG
|
|
echo &>> $INSTALLLOG
|
|
echo -e "\033[34mEasyEngine (ee) Installation Started [$(date)]\e[0m" | tee -ai $INSTALLLOG
|
|
|
|
|
|
# Checking Ed
|
|
if [ ! -x /bin/ed ]
|
|
then
|
|
echo -e "\033[31mEd Command Not Found\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mInstalling Ed, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
apt-get -y install ed &>> $INSTALLLOG || OwnError "Unable to install ed"
|
|
fi
|
|
|
|
# Checking Bc
|
|
if [ ! -x /usr/bin/bc ]
|
|
then
|
|
echo -e "\033[31mBc Command Not Found\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mInstalling Bc, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
apt-get -y install bc &>> $INSTALLLOG || OwnError "Unable to install bc"
|
|
fi
|
|
|
|
# Checking Wget
|
|
if [ ! -x /usr/bin/wget ]
|
|
then
|
|
echo -e "\033[31mWget Command Not Found\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mInstalling Wget, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
apt-get -y install wget &>> $INSTALLLOG || OwnError "Unable To Install Wget"
|
|
fi
|
|
|
|
# Checking Curl
|
|
if [ ! -x /usr/bin/curl ]
|
|
then
|
|
echo -e "\033[31mCurl Command Not Found\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mInstalling Curl, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
apt-get -y install curl &>> $INSTALLLOG || OwnError "Unable To Install Curl"
|
|
fi
|
|
|
|
# Checking Tar
|
|
if [ ! -x /bin/tar ]
|
|
then
|
|
echo -e "\033[31mTar Command Not Found\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mInstalling Tar, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
apt-get -y install tar &>> $INSTALLLOG || OwnError "Unable To Install Tar"
|
|
fi
|
|
|
|
# Checking Git
|
|
if [ ! -x /usr/bin/git ]
|
|
then
|
|
echo -e "\033[31mGit Command Not Found\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mInstalling Git, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
apt-get -y install git-core &>> $INSTALLLOG || OwnError "Unable To Install Git"
|
|
fi
|
|
|
|
# Checking Name Servers
|
|
if [[ -z $(cat /etc/resolv.conf 2> /dev/null | awk '/^nameserver/ { print $2 }') ]]
|
|
then
|
|
echo -e "\033[31mNo Name Servers Detected\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[31mPlease Configure /etc/resolv.conf\e[0m" | tee -ai $INSTALLLOG
|
|
exit 102
|
|
fi
|
|
|
|
# Pre Checks End
|
|
|
|
# Clone EasyEngine (ee)
|
|
if [ -z "$EE_BRANCH" ]
|
|
then
|
|
EE_BRANCH=stable
|
|
else
|
|
# Cross Check The Branch Name
|
|
git ls-remote --heads https://github.com/rtCamp/easyengine | grep $EE_BRANCH &>> $INSTALLLOG
|
|
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo -e "\033[31mThe $EE_BRANCH Branch Does Not Exist, Please Provide The Correct Branch Name\e[0m" | tee -ai $INSTALLLOG
|
|
exit 103;
|
|
fi
|
|
fi
|
|
|
|
echo -e "\033[34mCloning EasyEngine (ee) $EE_BRANCH Branch, Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
|
|
# Remove Older EasyEngine (ee) If Found
|
|
rm -rf /tmp/easyengine &>> /dev/null
|
|
|
|
# Clone EasyEngine (ee) Repository
|
|
git clone -b $EE_BRANCH git://github.com/rtCamp/easyengine.git /tmp/easyengine &>> $INSTALLLOG || OwnError "Unable To Clone Easy Engine"
|
|
|
|
|
|
# Create Directory /etc/easyengine
|
|
if [ ! -d /etc/easyengine ]
|
|
then
|
|
# Create A Directory For EE Configurations
|
|
mkdir -p /etc/easyengine || OwnError "Unable To Create Dir /etc/easyengine"
|
|
fi
|
|
|
|
# Create Directory /usr/share/easyengine
|
|
if [ ! -d /usr/share/easyengine/nginx ]
|
|
then
|
|
# Create A Directory For EE Nginx Configurations
|
|
mkdir -p /usr/share/easyengine/nginx || OwnError "Unable To Create Dir /usr/share/easyengine/nginx"
|
|
fi
|
|
|
|
# Install EasyEngine (ee)
|
|
echo -e "\033[34mInstalling EasyEngine (ee), Please Wait...\e[0m" | tee -ai $INSTALLLOG
|
|
|
|
# EasyEngine (ee) /etc Files
|
|
cp -a /tmp/easyengine/etc/bash_completion.d/ee /etc/bash_completion.d/ &>> $INSTALLLOG || OwnError "Unable To Copy EE Auto Complete File"
|
|
cp -a /tmp/easyengine/etc/easyengine/ee.conf /etc/easyengine/ &>> $INSTALLLOG || OwnError "Unable To Copy ee.conf File"
|
|
|
|
# EE /usr/share/easyengine Files
|
|
cp -a /tmp/easyengine/etc/nginx/* /usr/share/easyengine/nginx/ &>> $INSTALLLOG || OwnError "Unable To Copy Configuration Files "
|
|
cp -a /tmp/easyengine/usr/share/easyengine/* /usr/share/easyengine/ &>> $INSTALLLOG || OwnError "Unable To Copy Configuration Files "
|
|
|
|
# EE Command
|
|
cp -a /tmp/easyengine/usr/local/sbin/easyengine /usr/local/sbin/ &>> $INSTALLLOG || OwnError "Unable To Copy EasyEngine Command"
|
|
|
|
# EE Man Pages
|
|
cp -a /tmp/easyengine/man/ee.8 /usr/share/man/man8/ &>> $INSTALLLOG || OwnError "Unable To Copy EasyEngine Man Pages"
|
|
|
|
# Change Permission For EE
|
|
chmod 750 /usr/local/sbin/easyengine || OwnError "Unable To Change EasyEngine Command Permission"
|
|
|
|
# Create Symbolic Link If Not Exist
|
|
if [ ! -L /usr/local/sbin/ee ]
|
|
then
|
|
ln -s /usr/local/sbin/easyengine /usr/local/sbin/ee
|
|
fi
|
|
|
|
|
|
# Git Config Settings
|
|
EEGITNAME=$(git config user.name)
|
|
EEGITEMAIL=$(git config user.email)
|
|
|
|
if [ -z "$EEGITNAME" ] || [ -z "$EEGITEMAIL" ]
|
|
then
|
|
echo
|
|
echo -e "\033[34mEasyEngine (ee) Required Your Name & Email Address To Track Changes You Made Under The Git\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mEasyEngine (ee) Will Be Able To Send You Daily Reports & Alerts In Upcoming Version\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mEasyEngine (ee) Will NEVER Send Your Information Across\e[0m" | tee -ai $INSTALLLOG
|
|
fi
|
|
# Check Git User Is Empty Or Not
|
|
if [ -z "$EEGITNAME" ]
|
|
then
|
|
read -p "Enter Your Name [$(whoami)]: " EEGITNAME
|
|
# If Enter Is Pressed
|
|
if [[ $EEGITNAME = "" ]]
|
|
then
|
|
EEGITNAME=$(whoami)
|
|
fi
|
|
git config --global user.name "$EEGITNAME" &>> $INSTALLLOG
|
|
fi
|
|
|
|
# Check Git User Is Empty Or Not
|
|
if [ -z "$EEGITEMAIL" ]
|
|
then
|
|
read -p "Enter Your Email [$(whoami)@$(hostname -f)]: " EEGITEMAIL
|
|
# If Enter Is Pressed
|
|
if [[ $EEGITEMAIL = "" ]]
|
|
then
|
|
EEGITEMAIL=$(whoami)@$(hostname -f)
|
|
fi
|
|
git config --global user.email $EEGITEMAIL &>> $INSTALLLOG
|
|
fi
|
|
|
|
|
|
# Source EasyEngine (ee) Auto Complete To Take Effect
|
|
echo
|
|
echo -e "\033[34mFor EasyEngine (ee) Auto Completion Run Following Command\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[37msource /etc/bash_completion.d/ee\e[0m" | tee -ai $INSTALLLOG
|
|
echo
|
|
|
|
# Display Success Message
|
|
echo -e "\033[34mEasyEngine (ee) Installed Successfully\e[0m" | tee -ai $INSTALLLOG
|
|
echo -e "\033[34mEasyEngine (ee) Help: http://rtcamp.com/easyengine/docs/\e[0m" | tee -ai $INSTALLLOG
|
|
echo
|
|
|