diff --git a/README.md b/README.md index 613e1fc..0b49aab 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,3 @@ -#!/bin/bash # Raspberry Pi MQTT monitor Python script to check the cpu load, cpu temperature, free space, used memory, swap usage, voltage and system clock speed on a Raspberry Pi or any computer running Ubuntu and publish this data to a MQTT broker. @@ -34,7 +33,7 @@ Disabled sensors are represented with False in the message. I have created an automated bash installation, its working but not extensively tested ```bash -curl -L https://raw.githubusercontent.com/hjelev/rpi-mqtt-monitor/master/remote_install.sh | bash +bash <(curl -s https://raw.githubusercontent.com/hjelev/rpi-mqtt-monitor/master/remote_install.sh) ``` diff --git a/remote_install.sh b/remote_install.sh index 0d48ab6..50acc5a 100755 --- a/remote_install.sh +++ b/remote_install.sh @@ -1,5 +1,5 @@ #!/bin/bash -printm(){ +printm () { length=$(expr length "$1") length=$(($length + 4)) printf "\n" @@ -8,99 +8,8 @@ printm(){ printf -- '-%.0s' $(seq $length); echo "" } -print_green(){ - tput setaf 2; echo "$1" - tput sgr 0 -} - -print_yellow(){ - tput setaf 3; printf "$1" - tput sgr 0 -} - printm "Cloning rpi-mqtt-monitor git repository" git clone https://github.com/hjelev/rpi-mqtt-monitor.git cd rpi-mqtt-monitor -printm "Raspberry Pi MQTT monitor installer" - -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 - print_green "+ Found $pip" - fi -} - -install_requirements () { - printm "Installing requirements" - pip install -r requirements.txt -} - -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) - print_yellow " There is already a cronjob running rpi-cpu2mqtt.py - skipping cronjob creation\n" - print_yellow " If you want the cronjob to be automatically created remove the line below from your\n cronjobs list and run the installer again.\n\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 - install_requirements - update_config - set_cron - printm "Done" -} -main +bash install.sh