From f6c5c5d56714da10b88015db8fafd2a674cf7054 Mon Sep 17 00:00:00 2001 From: hjelev Date: Thu, 17 Mar 2022 01:38:32 +0200 Subject: [PATCH] formatting --- install.sh | 179 +++++++++++++++++++++++++--------------------- remote_install.sh | 98 +++---------------------- 2 files changed, 109 insertions(+), 168 deletions(-) diff --git a/install.sh b/install.sh index 6f2944d..a83f907 100755 --- a/install.sh +++ b/install.sh @@ -1,84 +1,103 @@ -line="---" -echo "Raspberry Pi MQTT monitor installer" -echo $line -echo "Checking if pip and paho-mqtt are installed" -echo $line -cwd=$(pwd) -python=$(which python) -pip=$(python -m pip --version 2>&1); -if [[ "$pip" == *"No"* ]]; then -echo "Pip is not installed, installing it." -sudo apt install python-pip -else -echo $line -echo "Python pip is installed" -echo $line -echo $pip -fi - -pip=$(pip list | grep "paho-mqtt"); -if [[ "$pip" == *"paho-mqtt"* ]]; then -echo "Paho-mqtt is installed" -echo $line -echo $pip -else -echo "Paho-mqtt is not installed, installing it." -pip install paho-mqtt -fi -echo $line -echo "Copy config.py.example to config.py" - -cp src/config.py.example src/config.py -echo $line -echo "MQTT settings" -echo "---" - -printf "Enter mqtt_host: " -read HOST -sed -i "s/ip address or host/${HOST}/" src/config.py - -printf "Enter mqtt_user: " -read USER -sed -i "s/username/${USER}/" src/config.py - -printf "Enter mqtt_password: " -read PASS -sed -i "s/\"password/\"${PASS}/" src/config.py - -printf "Enter mqtt_port (default is 1883): " -read PORT -if [ -z "$PORT" ]; then - PORT=1883 -fi -sed -i "s/1883/${PORT}/" src/config.py - -printf "Enter mqtt_topic_prefix (default is rpi-MQTT-monitor): " -read TOPIC -if [ -z "$TOPIC" ]; then - TOPIC=rpi-MQTT-monitor -fi -sed -i "s/rpi-MQTT-monitor/${TOPIC}/" src/config.py +printm () { + line="------" + length=$(expr length "$1") + printf -- '-%.0s' $(seq $length); echo "" + echo "$1" + printf -- '-%.0s' $(seq $length); echo "" +} -echo "---" -echo "Setting Cronjob" -echo "---" -crontab -l > tempcron -if grep -q rpi-cpu2mqtt.py tempcron; then - cronfound=$(grep rpi-cpu2mqtt.py tempcron) - echo " There is already a cronjob running rpi-cpu2mqtt.py - skipping cronjob creation" - printf " If you want the cronjob to be automatically created remove the line below from your\n cronjobs list and run the installer again.\n" - echo "${cronfound}" -else +printm "Raspberry Pi MQTT monitor installer" - printf "How often do you want the script to run in minutes? " - read MIN - echo "Adding the line below to your crontab" - echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" - echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" >> tempcron - crontab tempcron -fi +check_and_install_pip () { + cwd=$(pwd) + python=$(which python) + pip=$(python -m pip --version 2>&1); + if [[ "$pip" == *"No"* ]]; then + echo "- Pip is not installed, installing it." + sudo apt install python-pip + else -rm tempcron -echo "---" -echo "Done" + tput setaf 2; echo "+ Found $pip" + tput sgr 0 + fi +} + +check_and_install_paho () { + pip=$(pip list | grep "paho-mqtt"); + if [[ "$pip" == *"paho-mqtt"* ]]; then + echo "+ Found $pip" + + else + echo "- Paho-mqtt is not installed, installing it." + pip install paho-mqtt + fi +} + +update_config () { + printf "\nCopy config.py.example to config.py\n" + + cp src/config.py.example src/config.py + + printm "MQTT settings" + + + printf "Enter mqtt_host: " + read HOST + sed -i "s/ip address or host/${HOST}/" src/config.py + + printf "Enter mqtt_user: " + read USER + sed -i "s/username/${USER}/" src/config.py + + printf "Enter mqtt_password: " + read PASS + sed -i "s/\"password/\"${PASS}/" src/config.py + + printf "Enter mqtt_port (default is 1883): " + read PORT + if [ -z "$PORT" ]; then + PORT=1883 + fi + sed -i "s/1883/${PORT}/" src/config.py + + printf "Enter mqtt_topic_prefix (default is rpi-MQTT-monitor): " + read TOPIC + if [ -z "$TOPIC" ]; then + TOPIC=rpi-MQTT-monitor + fi + sed -i "s/rpi-MQTT-monitor/${TOPIC}/" src/config.py + + printf "\nconfig.py is updated with provided settings\n" +} + +set_cron () { + printm "Setting Cronjob" + + crontab -l > tempcron + if grep -q rpi-cpu2mqtt.py tempcron; then + cronfound=$(grep rpi-cpu2mqtt.py tempcron) + echo " There is already a cronjob running rpi-cpu2mqtt.py - skipping cronjob creation" + printf " If you want the cronjob to be automatically created remove the line below from your\n cronjobs list and run the installer again.\n" + echo "${cronfound}" + else + + printf "How often do you want the script to run in minutes? " + read MIN + echo "Adding the line below to your crontab" + echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" + echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" >> tempcron + crontab tempcron + fi + + rm tempcron +} + +main () { + check_and_install_pip + check_and_install_paho + update_config + set_cron + printm "Done" +} +main diff --git a/remote_install.sh b/remote_install.sh index 2a8a69f..f499c3a 100755 --- a/remote_install.sh +++ b/remote_install.sh @@ -1,93 +1,15 @@ -line="------" -echo $line -echo "Raspberry Pi MQTT monitor installer" -echo $line +printm () { + line="------" + length=$(expr length "$1") + printf -- '-%.0s' $(seq $length); echo "" + echo "$1" + printf -- '-%.0s' $(seq $length); echo "" +} + +printm "Raspberry Pi MQTT monitor installer" echo "Cloning git repository" echo $line git clone https://github.com/hjelev/rpi-mqtt-monitor.git cd rpi-mqtt-monitor - - -echo $line -cwd=$(pwd) -python=$(which python) -echo $line -echo "Checking if pip and paho-mqtt are installed" -echo $line -cwd=$(pwd) -python=$(which python) -pip=$(python -m pip --version 2>&1); -if [[ "$pip" == *"No"* ]]; then -echo "Pip is not installed, installing it." -sudo apt install python-pip -else -echo $line -echo "Python pip is installed" -echo $line -echo $pip -fi - -pip=$(pip list | grep "paho-mqtt"); -if [[ "$pip" == *"paho-mqtt"* ]]; then -echo "Paho-mqtt is installed" -echo $line -echo $pip -else -echo "Paho-mqtt is not installed, installing it." -pip install paho-mqtt -fi -echo $line -echo "MQTT settings" -echo $line -echo "Copy config.py.example to config.py" -cp src/config.py.example src/config.py -printf "Enter mqtt_host: " -read HOST -sed -i "s/ip address or host/${HOST}/" src/config.py - -printf "Enter mqtt_user: " -read USER -sed -i "s/username/${USER}/" src/config.py - -printf "Enter mqtt_password: " -read PASS -sed -i "s/\"password/\"${PASS}/" src/config.py - -printf "Enter mqtt_port (default is 1883): " -read PORT -if [ -z "$PORT" ]; then - PORT=1883 -fi -sed -i "s/1883/${PORT}/" src/config.py - -printf "Enter mqtt_topic_prefix (default is rpi-MQTT-monitor): " -read TOPIC -if [ -z "$TOPIC" ]; then - TOPIC=rpi-MQTT-monitor -fi -sed -i "s/rpi-MQTT-monitor/${TOPIC}/" src/config.py - - -echo $line -echo "Setting Cronjob" -echo $line -crontab -l > tempcron -if grep -q rpi-cpu2mqtt.py tempcron; then - cronfound=$(grep rpi-cpu2mqtt.py tempcron) - echo " There is already a cronjob running rpi-cpu2mqtt.py - skipping cronjob creation" - printf " If you want the cronjob to be automatically created remove the line below from your\n cronjobs list and run the installer again.\n" - echo "${cronfound}" -else - - printf "How often do you want the script to run in minutes? " - read MIN - echo "Adding the line below to your crontab" - echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" - echo "*/${MIN} * * * * ${python} ${cwd}/src/rpi-cpu2mqtt.py" >> tempcron - crontab tempcron -fi - -rm tempcron -echo $line -echo "Done" +bash install.sh