MOTDs32/install.sh
2020-04-19 16:57:38 +02:00

325 lines
11 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
#
# MOTDs32 installation instructions
# ==================================
#
# (2017) New project MOTDs32 Customized by Erreur32
# Version 0.0.5
#
# https://gitlab.echosystem.fr/Erreur32/MOTDs32
#
# ,--. ,--. ,-----. ,--------.,------. ,----. ,---.
# | `.' |' .-. ''--. .--'| .-. \ ,---. '.-. |'.-. \
# | |'.'| || | | | | | | | \ :( .-' .' < .-' .'
# | | | |' '-' ' | | | '--' /.-' `)/'-' |/ '-.
# `--' `--' `-----' `--' `-------' `----' `----' '-----'
#
# | + |
#
# MOTDstat is dynamicaly refreshing the /etc/motd file with current informations
# about system status and usage.
#
# Copyright 2017 🅴🆁🆁🅴🆄🆁32
# original project: Pavol Krigler <pavol.krigler@gelogic.net>
#
# make sur this file is executable +x
################################################################################
#
# Installation
# ============
#
# As root execute this command (the easy way!):
#
# # bash install.sh
#
#
################################################################################
# Make sure only root can run our script
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
## clean terminal
BG_BLUE="$(tput setab 4)"
BG_BLACK="$(tput setab 0)"
FG_GREEN="$(tput setaf 2)"
FG_WHITE="$(tput setaf 7)"
# Save screen
tput smcup
# Display menu until selection == 0
while [[ $REPLY != 0 ]]; do
echo -n ${BG_BLACK}${FG_WHITE}
clear
cat <<- "EOFMO"
| + |
,--. ,--. ,-----. ,--------.,------. ,----. ,---.
| `.' |' .-. ''--. .--'| .-. \ ,---. '.-. |'.-. \
| |'.'| || | | | | | | | \ :( .-' .' ; .-' .'
| | | |' '-' ' | | | '--' /.-' `)/'-' |/ '-.
`--' `--' `-----' `--' `-------' `----' `----' '-----'
By
EOFMO
echo -e "\033[1;30m # MOTDs32 is dynamicaly refreshing the /etc/motd file with current informations"
echo -e "\033[1;30m # about system status and usage."
echo -e "\n \e[34m Check dependencies... \e[0m\n"
# Check dependenciess
echo -e "\e[34m Check required dependencies ! (need to be installed)"
# Check installed
if [ -f "/usr/sbin/sendmail" ]
then
echo -e " \e[34m- Posfix \e[32m✔ installed.\e[0m"
else
echo -e " \e[34m- Select option 1 \e[91m Missing package !! \e[0m\n"
fi
if [ -f "/usr/share/build-essential/essential-packages-list" ]
then
echo -e " \e[34m- build-dep \e[32m✔ installed.\e[0m"
else
echo -e " \e[34m- build-dep \e[1;31mSelect option 1 \e[91m Missing package !!\e[0m"
fi
# Check files
if hash figlet 2>/dev/null; then
echo -e " \e[34m- Figlet \e[32m✔ installed.\e[0m"
else
echo -e " \e[34m- Figlet \e[1;31m Select option 1 \e[91m Missing package !!\e[0m"
fi
if hash ntpd 2>/dev/null; then
echo -e " \e[34m- NTP \e[32m✔ installed.\e[0m"
else
echo -e " \e[34m- NTP \e[1;31mSelect option 1 \e[91m Missing package !!\e[0m"
fi
if hash make 2>/dev/null; then
echo -e " \e[34m- build-essential \e[32m✔ installed.\e[0m"
else
echo -e " \e[34m- build-essential \e[1;31mSelect option 1 \e[91m Missing package !!\e[0m"
fi
echo -e "\n YOU CAN SKIP (auto) install if you want"
echo -e "\n\e[92m Please Select:"
echo -e " 1. \e[0m(auto) Install Missing Package\e[92m"
echo -e " 2. \e[0mInstallation MOTDs32 script\e[92m"
echo -e " 3. \e[0mUpdate MOTDs32 script\e[92m"
echo -e " 4. \e[0mUninstall completly MOTDs32 script\e[92m"
echo -e " 0. \e[0m(Enter or any key) to Quit\n \e[0m"
read -p " Enter selection [0-3] or (Enter) to Quit > " selection
# Clear area beneath menu
tput cup 10 0
echo -n ${FG_GREEN}
tput ed
tput cup 11 0
# Act on selection
case $selection in
1) echo -e " \e[32m install missing package ...\e[0m\n"
apt-get install --allow-unauthenticated -y build-essential ntp figlet postfix sasl2-bin
echo -e "\n\e[34m - apt-get installation build-essential ntp figlet \e[0m>> Succesfull"
if [ -f "/usr/bin/motds32" ]
then
echo -e "\n\e[34m - Make file \e[0m>> found.\e[0m\n"
#make install
#echo -e "\n\e[34m - REMake file done.\e[0m\n"
else
echo -e "\n\e[92m -Building binary \e[0m\n"
make install
echo -e "\n\e[34m - Make file done.\e[0m\n"
fi
echo -e "\e[92m"
if [ `grep -c /etc/motd ~/.bashrc` == 0 ]
then
echo -e " \e[31m code bash missing\e[0m"
echo "cat /etc/motd" >> ~/.bashrc
echo -e "\e[92m - Code bash \e[0madded.\n"
else
grepmot=`grep '/etc/motd' ~/.bashrc`
echo -e " \e[1;30m Code bash found: \e[0m>>\e[0m $grepmot \e[0m<<\n"
echo -e " -->\e[34m Code bash: \e[92mOK\e[0m"
fi
# Check if MOTDs32 is already add
if test ! -d /etc/motds32; then mkdir -p /etc/motds32; fi
if [ -f "/etc/motds32/Stats32" ]
then
echo -e " -->\e[34m Stats32 \e[92mOK\e[0m"
cp -f Stats32 /etc/motds32/Stats32
else
cp -f Stats32 /etc/motds32/Stats32
echo -e " -->\e[34m Stats32 \e[92mINSTALLED\e[0m"
fi
# Copy font figlet
if [ -f "/usr/share/figlet" ]
then
echo -e " -->\e[31m figlet not FOUND\e[0m"
else
cp -Rf fonts/chunky.flf /usr/share/figlet/
echo -e " -->\e[34m figlet&font \e[92mOK\e[0m"
fi
# Check if motd is installed correctly
if [ -f "/usr/bin/motd" ]
then
echo -e " -->\e[34m motd check \e[92mOK\e[0m\n"
else
ln -s /usr/bin/motds32 /usr/bin/motd
echo -e " -->\e[34m motd bin \e[92mOK\e[0m\n"
fi
## Install Crontab
if crontab -l | grep -q '/usr/bin/motds32'; then
echo -e " \e[34m -Cron \e[0m>> already added.\e[0m"
else
echo -e "\e[34m - Cron added.\e[0m"
(crontab -l ; echo "*/5 * * * * /usr/bin/motds32 -g 2>1")| crontab -
fi
## Generate first stats
if test -f /usr/bin/motds32; then /usr/bin/motds32 -g; fi
echo -e "\n\n\e[34m \e[92m completed!\e[0m \n\n\n Help? Use: \n \033[1;30m /usr/bin/motds32\e[0m \n or \033[1;30m\n motd\e[0m\n"
printf "\n \e[1;33m (Press 0 to exit)\e[0m"
printf "\n \e[1;33m (Or any key to go back.)\e[0m"
;;
2) echo -n " Git " ; git pull ; echo -e "\n\e[92m" ;
grepmot="cat /etc/motd"
# if [ `grep -c "cat /etc/motd" ~/.bashrc` == 0 ]
if [ $(grep -c "cat /etc/motd" ~/.bashrc) == 0 ]
then
echo -e "\e[31m code bash missing\e[0m"
echo $grepmot >> ~/.bashrc
echo -e "\e[92m - Code bash \e[0madded.\n"
else
# sed -i '/cat \/etc\/motd/d' ~/.bashrc
# grepmot=$(grep "/etc/motd" ~/.bashrc)
echo -e " \e[32;1m Code bash found: \e[0m>>\e[0m $grepmot \e[0m<<\n"
echo -e " -->\e[34m Code bash: \e[92mOK\e[0m"
fi
# Check if MOTDs32 is already add
if test ! -d /etc/motds32; then mkdir -p /etc/motds32; fi
if [ -f "/usr/bin/motds32" ]
then
echo -e "\n\e[34m - Make file \e[0m>> found.\e[0m\n"
#make install
#echo -e "\n\e[34m - REMake file done.\e[0m\n"
else
echo -e "\n\e[92m -Building binary \e[0m\n"
make install
echo -e "\n\e[34m - Make file done.\e[0m\n"
fi
if [ -f "/etc/motds32/Stats32" ]
then
echo -e " -->\e[34m Stats32 \e[92mOK\e[0m"
cp -f Stats32 /etc/motds32/Stats32
else
cp -f Stats32 /etc/motds32/Stats32
echo -e " -->\e[34m Stats32 \e[92mINSTALLED\e[0m"
fi
# Copy font figlet
if [ -f "/usr/share/figlet" ]
then
echo -e " -->\e[31m figlet not FOUND\e[0m"
else
cp -Rf fonts/chunky.flf /usr/share/figlet/
echo -e " -->\e[34m figlet&font \e[92mOK\e[0m"
fi
# Check if motd is installed correctly
if [ -f "/usr/bin/motd" ]
then
echo -e " -->\e[34m motd check \e[92mOK\e[0m\n"
else
ln -s /usr/bin/motds32 /usr/bin/motd
echo -e " -->\e[34m motd bin \e[92mOK\e[0m\n"
fi
## Install Crontab
if crontab -l | grep -q '/usr/bin/motds32'; then
echo -e "\e[34m - Cron \e[0m>> already added.\e[0m"
/usr/bin/motds32 -g
else
echo -e "\e[34m - Cron added.\e[0m"
(crontab -l ; echo "*/5 * * * * /usr/bin/motds32 -g 2>1")| crontab -
fi
## Generate first stats
# if test -f /usr/bin/motds32; then /usr/bin/motds32 -g; fi
echo -e "\n\n\e[34m \e[92m completed!\e[0m \n\n\n Help? Use: \n \033[1;30m /usr/bin/motds32\e[0m \n or \033[1;30m\n motd\e[0m\n"
printf "\n \e[1;33m (Press any key to exit.)\e[0m"
;;
3) echo -n " Git " ; git pull ; echo -e "\n\e[92m" ;
if [ -f "/usr/bin/motds32" ]
then
echo -e "\n\e[34m - Make file \e[0m>> update.\e[0m\n"
make install > /dev/null
echo -e "\n\e[32;1m - Update binary done.\e[0m\n"
else
# echo -e "\n\e[92m -Update binary \e[0m\n"
# make install > /dev/null
echo -e "\n\e[32;4m - Make install first !\e[0m\n"
fi
;;
4) echo -e "\n\e[34m Unistall of in progress... \e[0m"
## remove file and directory
make uninstall
rm /etc/motds32/ -Rf
rm -f /usr/bin/motd
rm /var/cache/motds32/ -Rf
## remove cron
if crontab -l | grep -q '/usr/bin/motds32'; then
echo -e " \e[92m Cron localized\n"
crontab -l | grep -v '/usr/bin/motds32 -g 2>1' | crontab -u root -
echo -e " \e[92m Cron removed\n"
else
echo -e " \e[93m Cron not find\n"
fi
if [ `grep -c /etc/motd ~/.bashrc` == 0 ]
then
echo " Code bash not found"
else
echo " code bash found"
sed -i '/cat \/etc\/motd/d' ~/.bashrc
sed -i '/cat \/usr\/bin\/motds32 -g/d' ~/.bashrc
echo -e "\e[92m Code .bashrc removed.\e[0m"
grep -n '/etc/motd' ~/.bashrc
fi
echo -e "\n\e[92m Script has been completly removed \e[0m"
printf "\n \e[1;33m (Press any key.)\e[0m"
;;
0) break
;;
*) break
;;
esac
read -n 1
# echo -e "\n\n\e[34m \e[92m completed!\e[0m \n\n\n Help? Use: \n \033[1;30m /usr/bin/motds32\e[0m \n or \033[1;30m\n motd\e[0m\n"
# printf "\n \e[1;33m (Press any key to exit.)\e[0m"
done
# Restore screen
tput rmcup
echo "Installation MOTDs32 terminated."