Fix -A option
Add -b option to help debug time-based rule processing
This commit is contained in:
parent
3f31ede396
commit
c41c57e228
24
aircon.sh
24
aircon.sh
|
@ -34,6 +34,7 @@ GREY="\033[2;37m"
|
||||||
WHITE="\033[37m"
|
WHITE="\033[37m"
|
||||||
LINK="$BLUE$UNDERLINE"
|
LINK="$BLUE$UNDERLINE"
|
||||||
|
|
||||||
|
RULEDB=1
|
||||||
|
|
||||||
function enable_cronmode() {
|
function enable_cronmode() {
|
||||||
cronmode=1
|
cronmode=1
|
||||||
|
@ -56,6 +57,7 @@ function usage() {
|
||||||
echo " Modifies aircon based on configured parameters in $DEFAULT_CONFIGFILE."
|
echo " Modifies aircon based on configured parameters in $DEFAULT_CONFIGFILE."
|
||||||
echo
|
echo
|
||||||
echo " -a file Specify location of arping binary (default: $ARPING_DEF)."
|
echo " -a file Specify location of arping binary (default: $ARPING_DEF)."
|
||||||
|
echo " -b Rule debug mode. Show processing of time rules."
|
||||||
echo " -A db Log actions to given influxdb database."
|
echo " -A db Log actions to given influxdb database."
|
||||||
echo " -c Cron mode. Only show output if actions were taken."
|
echo " -c Cron mode. Only show output if actions were taken."
|
||||||
echo " -D dbhost Specify influxdb hostname for -I and -A options (default: localhost)"
|
echo " -D dbhost Specify influxdb hostname for -I and -A options (default: localhost)"
|
||||||
|
@ -1024,6 +1026,10 @@ function processtimeconditions() {
|
||||||
local ok=0
|
local ok=0
|
||||||
local nonmatches=0
|
local nonmatches=0
|
||||||
local rv
|
local rv
|
||||||
|
local db=0
|
||||||
|
if [[ $RULEDB -eq 1 ]]; then
|
||||||
|
db=1
|
||||||
|
fi
|
||||||
if [[ $1 == "-c" ]]; then
|
if [[ $1 == "-c" ]]; then
|
||||||
keepgoing=1
|
keepgoing=1
|
||||||
shift 1
|
shift 1
|
||||||
|
@ -1031,11 +1037,12 @@ function processtimeconditions() {
|
||||||
line="$*"
|
line="$*"
|
||||||
timestr_human=""
|
timestr_human=""
|
||||||
|
|
||||||
timestr=${line%% *}
|
timestr=${line%% *} # only process first word
|
||||||
timestr=${timestr:1}
|
timestr=${timestr:1} # strip leading @
|
||||||
|
[[ $db -eq 1 ]] && info "${BOLD}Processing line: '$line'"
|
||||||
IFS=';' read -ra allconds <<< "$timestr"
|
IFS=';' read -ra allconds <<< "$timestr"
|
||||||
for cond in ${allconds[@]} ; do
|
for cond in ${allconds[@]} ; do
|
||||||
[[ $db -eq 1 ]] && info "Processing condition: '$cond'"
|
[[ $db -eq 1 ]] && info " processing condition: '$cond'"
|
||||||
IFS='-' read -ra ttok <<< "$cond"
|
IFS='-' read -ra ttok <<< "$cond"
|
||||||
if [[ ${#ttok[@]} == 1 ]]; then
|
if [[ ${#ttok[@]} == 1 ]]; then
|
||||||
stype[0]=$(getstrtype ${ttok[0]})
|
stype[0]=$(getstrtype ${ttok[0]})
|
||||||
|
@ -1098,10 +1105,12 @@ function processtimeconditions() {
|
||||||
[[ $db -eq 1 ]] && info " check if $nowh is between $starth and $endh"
|
[[ $db -eq 1 ]] && info " check if $nowh is between $starth and $endh"
|
||||||
ok=0
|
ok=0
|
||||||
if [[ $(echo "$starth < $endh" | bc) == "1" ]]; then
|
if [[ $(echo "$starth < $endh" | bc) == "1" ]]; then
|
||||||
|
[[ $db -eq 1 ]] && info " time period does NOT span midnight"
|
||||||
if [[ $(echo "$nowh >= $starth" | bc) == "1" && $(echo "$nowh <= $endh" | bc) == "1" ]]; then
|
if [[ $(echo "$nowh >= $starth" | bc) == "1" && $(echo "$nowh <= $endh" | bc) == "1" ]]; then
|
||||||
ok=1
|
ok=1
|
||||||
fi
|
fi
|
||||||
elif [[ $(echo "$starth > $endh" | bc) == "1" ]]; then
|
elif [[ $(echo "$starth > $endh" | bc) == "1" ]]; then
|
||||||
|
[[ $db -eq 1 ]] && info " time period spans midnight"
|
||||||
if [[ $(echo "$nowh <= $endh" | bc) == "1" || $(echo "$nowh >= $starth" | bc) == "1" ]]; then
|
if [[ $(echo "$nowh <= $endh" | bc) == "1" || $(echo "$nowh >= $starth" | bc) == "1" ]]; then
|
||||||
ok=1
|
ok=1
|
||||||
fi
|
fi
|
||||||
|
@ -1324,7 +1333,7 @@ function canping() {
|
||||||
local n hname ip db host success=0 mac
|
local n hname ip db host success=0 mac
|
||||||
local os arprv arpres
|
local os arprv arpres
|
||||||
os=$(uname -s)
|
os=$(uname -s)
|
||||||
db=1
|
db=0
|
||||||
if [[ $db -eq 1 ]]; then
|
if [[ $db -eq 1 ]]; then
|
||||||
info "canping() for:"
|
info "canping() for:"
|
||||||
for host in $*; do
|
for host in $*; do
|
||||||
|
@ -1809,12 +1818,15 @@ fi
|
||||||
|
|
||||||
ALLARGS="$ALLARGS $*"
|
ALLARGS="$ALLARGS $*"
|
||||||
|
|
||||||
optstring="A:cD:f:hHi:I:k:l:Lo:pmRsSt:T:wWx:y"
|
optstring="A:bcD:f:hHi:I:k:l:Lo:pmRsSt:T:wWx:y"
|
||||||
while getopts "$optstring" i $ALLARGS; do
|
while getopts "$optstring" i $ALLARGS; do
|
||||||
case "$i" in
|
case "$i" in
|
||||||
a)
|
A)
|
||||||
ARPING=${OPTARG}
|
ARPING=${OPTARG}
|
||||||
;;
|
;;
|
||||||
|
b)
|
||||||
|
ruledb=1
|
||||||
|
;;
|
||||||
h)
|
h)
|
||||||
usage;
|
usage;
|
||||||
exit 1;
|
exit 1;
|
||||||
|
|
Loading…
Reference in New Issue