#!/bin/bash # Startup Script # ==================================================================== # I wrote this script with the intention of using it to start a # cron-job -- when the Raspberry Pi is turned on. Before you set the # cron-job up, you must make sure you have either ran the # "make-log-files.sh" script or created the appropriate log file and # folder at the location specified at "logFile" below. # ==== # Please note: This script calls another (Python) script at the end of # it. The code in the Python script (cli_meter.py) is an infinite-loop # so you will need to kill it manually or turn-off the Raspberry Pi. # ==== # I put the "sleep 60" call at the start to reduce any errors # occurring because a part of the system (I.E. curl) has not finished # loading. 60 seconds is a little excessive but I wrote this script # with the expectation of it running on an unmanned Raspberry Pi. So, # reliable/consistent behaviour is my preference over "fast start-up # times". # sleep 60 logDate=$(date '+%Y-%m-%dT%TZ') logFile="/home/rtrp/logs/startup-logs.txt" mainURL="http://ritherdon.abbether.net/api/status/update" # Make sure this is valid. getApiUrl () { case $HOSTNAME in (factory1) apiURL="${mainURL}/1";; (factory2) apiURL="${mainURL}/2";; (factory3) apiURL="${mainURL}/3";; (gallery1) apiURL="${mainURL}/4";; (gallery2) apiURL="${mainURL}/5";; (gallery3) apiURL="${mainURL}/6";; esac } logStatusChange () { cat << EOF >> $logFile $logDate EOF } logStatusChange getApiUrl curl -S -X POST --header 'Content-Type: application/json' --header 'Accept: text/html' -d '{"status": "on", "time": "'${logDate}'", "token": "QWERTYuiopasdfghjklzxcvbnm_1234567890"}' "${apiURL}" python3 /home/rtrp/repos/light-meter/cli_meter.py