1 script to setup and configure a Raspberry.
But it has no fancy gui, error handling and is not really complete.
Who can help me to complete this, script so installations can be made easier?
every kind of help is welcome..
Code: Select all
#!/bin/bash
## todo
## - modt script
## - fail2ban
## - error handling
## - setup backup script en restore made backups
## testen
#Configuration script for domoticz on a Raspberry Pi
INSTALL_DIR=/home/pi
DOMO_DIR=$INSTALL_DIR/domoticz
TEMP_DIR=/tmp
# Check for root priviledges
if [[ $(id -u) != 0 ]]
then
echo "Superuser (root) priviledges are required for most of the installations"
echo "Please do 'sudo -s' first"
exit 1
fi
# Accept EULA
if [[ "$BOXED" != "yes" ]]
then
echo "Do you accept the licence agreement?"
echo "Please know what you are doing!!"
while true
do
echo -n "yes/no: "
read ANSWER < /dev/tty
case $ANSWER in
yes)
break
;;
no)
exit 1
;;
esac
echo "Please answer yes or no"
done
fi
show_menu(){
NORMAL=`echo "\033[m"`
MENU=`echo "\033[36m"` #Blue
NUMBER=`echo "\033[33m"` #yellow
FGRED=`echo "\033[41m"`
RED_TEXT=`echo "\033[31m"`
ENTER_LINE=`echo "\033[33m"`
echo -e "${MENU}*********************************************${NORMAL}"
echo -e "${MENU}**${NUMBER} 1)${MENU} Configure PI ${NORMAL}"
echo -e "${MENU}**${NUMBER} 2)${MENU} Cleanup Installation ${NORMAL}"
echo -e "${MENU}**${NUMBER} 3)${MENU} Install additionals ${NORMAL}"
echo -e "${MENU}**${NUMBER} 4)${MENU} Update System ${NORMAL}"
echo -e "${MENU}**${NUMBER} 5)${MENU} Update Domoticz ${NORMAL}"
echo -e "${MENU}**${NUMBER} 6)${MENU} Monit ${NORMAL}"
echo -e "${MENU}**${NUMBER} 7)${MENU} Ramdisk ${NORMAL}"
echo -e "${MENU}**${NUMBER} 8)${MENU} MODT (inlogscript) ${NORMAL}"
echo -e "${MENU}**${NUMBER} 9)${MENU} Fix permissions ${NORMAL}"
echo -e "${MENU}**${NUMBER} 10)${MENU} Persistent USB ${NORMAL}"
echo -e "${MENU}**${NUMBER} 11)${MENU} Domoticz logging ${NORMAL}"
echo -e "${MENU}**${NUMBER} 12)${MENU} Fix permissions ${NORMAL}"
echo -e "${MENU}*********************************************${NORMAL}"
echo -e "${ENTER_LINE}Please enter a menu option and enter or ${RED_TEXT}enter to exit. ${NORMAL}"
read opt
}
function option_picked() {
COLOR='\033[01;31m' # bold red
RESET='\033[00;00m' # normal white
MESSAGE=${@:-"${RESET}Error: No message passed"}
echo -e "${COLOR}${MESSAGE}${RESET}"
}
clear
show_menu
while [ opt != '' ]
do
if [[ $opt = "" ]]; then
exit;
else
case $opt in
1) clear;
option_picked "Option 1 Picked";
echo "Option 1"
##### The percentage of updates #####
#####################################
echo expand filesystem
echo change wachtwoord
echo Change Hostname
echo enable SPI
echo zet landinstellingen goed
echo update
echo mogelijk overklokken
sudo raspi-config
menu;
;;
2) clear;
option_picked "Option 2 Picked";
echo "Option 2"
echo "Removing Junk"
sudo apt-get remove cups*
sudo apt-get remove gnome*
sudo apt-get remove x11-common*
sudo apt-get autoremove
menu;
;;
3) clear;
option_picked "Option 3 Picked";
echo "Option 3"
echo "Installing additional libraries"
apt-get -y update
## python voor scripts
apt-get -qy install python
## voor het check RFXCom update script
apt-get -qy install xml xml2 libxml2-dev
##webcam, driver voor logitech webcam.
apt-get -qy install uvccapture
show_menu;
;;
4) clear;
option_picked "Option 4 Picked";
echo "Update install"
sudo apt-get update
sudo apt-get upgrade
;;
5) clear;
option_picked "Option 5 Picked";
echo "Option 5"
echo "Update install"
cd domoticz
wget http://domoticz.sourceforge.net/beta/domoticz_linux_armv7l.tgz
tar xvfz domoticz_linux_armv7l.tgz
rm domoticz_linux_armv7l.tgz
./domoticz
menu;
;;
6) clear;
option_picked "Option 6 Picked";
echo "Install Monit"
## monit (als domoticz niet meer reageerd krijg je een mailtje.)
sudo apt-get install monit
## zet de rechten tijdelijk anders zodat met winscp het bestand in windows aan te passen is. copy-pasten maar :)
## ik zeg tijdelijk omdat monit niet kan werken met uitgebreide rechten.
cd /etc/monit/
sudo chmod 0777 /etc/monit/monitrc
cd /home/pi/domoticz/ && cp monitrc /etc/monit/
sudo chmod 0600 /etc/monit/monitrc
sudo monit reload
sudo monit -t
sudo service monit start all
sudo monit status
menu;
;;
7) clear;
option_picked "Option 7 Picked";
echo "Option 7"
echo "Ramdisk"
echo "Ramdisk beter om logs van scripts niet naartoe te laten schrijven voor behoud van je kaartje."
sudo mkdir /var/tmp
sudo nano /etc/fstab
echo "Voeg daar deze regel toe:"
echo "tmpfs /var/tmp tmpfs nodev,nosuid,size=1M 0 0 "
sudo mount -a
df
menu;
;;
8) clear;
option_picked "Option 8 Picked";
echo "Option 2"
echo "Motd.sh"
echo "Copying"
cp -r /home/pi/domoticz/motd.sh /etc/profile.d/motd.sh
menu;
;;
9) clear;
option_picked "Option 9 Picked";
echo "Option 9"
echo "Fix permissions "
## zet rechten goed (niet nodig gehad, maar goed als naslag):
cd /home/pi/domoticz/
sudo sh domoticz.sh stop
sudo service domoticz stop
sudo chown -R pi.pi *
##zet rechten via 777 op scripts (bash script voor backup bijvoorbeeld)
sudo chmod -R 0777 /tmp
sudo service domoticz start
menu;
;;
10) clear;
option_picked "Option 10 Picked";
echo "option 10"
echo "Persistent USB "
## zet rechten goed (niet nodig gehad, maar goed als naslag):
sudo nano /etc/udev/rules.d/99-usb-serial.rules
## sudo lsusb -v | more geeft my: p1 cable, rfx, webcam, arduino
# SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A6WJZP3I", SYMLINK+="ttyUSB11"
# SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A1WYA02C", SYMLINK+="ttyUSB22"
# SUBSYSTEM=="tty", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0825", ATTRS{serial}=="B89CE2A0", SYMLINK+="ttyUSB33"
# SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyUSB44"
menu;
;;
11) clear;
option_picked "Option 11 Picked";
echo "option 11"
echo "Domoticz logging "
## zet rechten goed (niet nodig gehad, maar goed als naslag):
echo "edit Domoticz Logging"
echo "Maybe also enable the logging in /etc/init.d/domoticz.sh:"
##-->> DEAMON_ARGS="-daemon -www 8080 -log /var/log/domoticz.log -loglevel 0
menu;
;;
12) clear;
option_picked "Option 12 Picked";
echo "option 12"
echo "Domoticz logging "
## Mindergas! upload to mindergas (DUTCH).
sudo apt-get install flex -y
wget https://github.com/stedolan/jq/releases/download/jq-1.4/jq-1.4.tar.gz
tar xfvz jq-1.4.tar.gz
cd jq-1.4
./configure
make
sudo make install
rm /home/pi/jq-1.4.tar.gz
cd home/pi/domoticz/scripts/bash/
ls
sh post-mindergas.sh
menu;
;;
13) clear;
option_picked "Option 13 Picked";
echo "option 13"
echo "Other "
menu;
;;
x)exit;
;;
\n)exit;
;;
*)clear;
option_picked "Pick an option from the menu";
show_menu;
;;
esac
fi
done
echo "Thank you for using Domoticz installation script!"
exit 0