From 8964230c5b31a676ec6a877b6d02df58f1497ed7 Mon Sep 17 00:00:00 2001 From: Vincent Riquer Date: Fri, 30 Jan 2015 12:09:03 +0100 Subject: [PATCH] SEE THE FUCKING FUTURE! --- index | 296 ++++++++++++++++++--------------- ingrrd.css | 2 +- lib/get_next_level | 108 ++++++++++++ lib/globals | 22 ++- lib/medals | 17 +- lib/print_medal | 30 ++++ lib/read_query_string | 4 + lib/readlast | 1 + lib/readold | 23 +++ lib/show_current_level | 364 +++++++++++++++++++++++++++++++---------- settings | 2 + 11 files changed, 634 insertions(+), 235 deletions(-) create mode 100644 lib/get_next_level create mode 100644 lib/print_medal create mode 100644 lib/readold diff --git a/index b/index index 76e92f5..50a24ad 100755 --- a/index +++ b/index @@ -42,6 +42,8 @@ then readlast medals get_current_level + readold "${last[time]}-$prevperiod" + get_next_level if (( show_all )) then title="IngRRD - $webuser [L$curlevel] - History & Trend: All stats" @@ -132,148 +134,172 @@ then Black EOHTML + for level in {1..16} do + never=0 + maxtimestamp=0 + tableline=() + if (( last["AP"] >= lvl[level] )) + then + tableline+=( '' + $(printf "%'li" ${lvl[level]}) + '' ) + else + #FIXME + readable=$(printf "%'li" ${lvl[level]}) + tableline+=( ''"${readable// / }" ) + readable=$(printf "%'li" $(( last["AP"] - lvl[level] ))) + tableline+=( "
(${readable// / })" ) + if (( timestamp )) + then + tableline+=( "
$(date +%Y-%m-%d -d @${nextlevels[level]})" ) + (( nextlevels[level] > maxtimestamp )) \ + && maxtimestamp=${nextlevels[level]} + else + tableline+=( "
(maybe some day)" ) + never=1 + fi + fi + if (( silvercount >= lvlsilver[level] )) + then + tableline+=( ''${lvlsilver[level]}'' ) + else + tableline+=( "${lvlsilver[level]} ($(( silvercount - lvlsilver[level] )))
" ) + count=0 + for timestamp in ${!nextsilver[@]} + do + if (( timestamp )) + then + thisdate=$(date +%Y-%m-%d -d @$timestamp) + (( timestamp > maxtimestamp )) \ + && maxtimestamp=$timestamp + for stat in ${nextsilver[timestamp]} + do + tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]})" ) + tableline+=( '
' ) + (( ++count == lvlsilver[level] - silvercount )) && break 2 + done + fi + done + for stat in ${nextsilver[0]} + do + (( count >= lvlsilver[level] - silvercount )) && break 1 + (( count < lvlsilver[level] - silvercount )) && never=1 + tableline+=( "$(print_medal $timestamp $stat ${upsilver[$stat]})" ) + tableline+=( '
' ) + (( count++ )) + done + tableline+=( '' ) + fi + if (( goldcount >= lvlgold[level] )) + then + tableline+=( ''${lvlgold[level]}'' ) + else + tableline+=( "${lvlgold[level]} ($(( goldcount - lvlgold[level] )))
" ) + count=0 + for timestamp in ${!nextgold[@]} + do + if (( timestamp )) + then + thisdate=$(date +%Y-%m-%d -d @$timestamp) + (( timestamp > maxtimestamp )) \ + && maxtimestamp=$timestamp + for stat in ${nextgold[timestamp]} + do + tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]})" ) + tableline+=( '
' ) + (( ++count == lvlgold[level] - goldcount )) && break 2 + done + fi + done + for stat in ${nextgold[0]} + do + (( count >= lvlgold[level] - goldcount )) && break 1 + (( count < lvlgold[level] - goldcount )) && never=1 + tableline+=( "$(print_medal $timestamp $stat ${upgold[$stat]})" ) + tableline+=( '
' ) + (( count++ )) + done + tableline+=( '' ) + fi + if (( platinumcount >= lvlplatinum[level] )) + then + tableline+=( ''${lvlplatinum[level]}'' ) + else + tableline+=( "${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] )))
" ) + count=0 + for timestamp in ${!nextplatinum[@]} + do + if (( timestamp )) + then + thisdate=$(date +%Y-%m-%d -d @$timestamp) + (( timestamp > maxtimestamp )) \ + && maxtimestamp=$timestamp + for stat in ${nextplatinum[timestamp]} + do + tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]})" ) + tableline+=( '
' ) + (( ++count == lvlplatinum[level] - platinumcount )) && break 2 + done + fi + done + for stat in ${nextplatinum[0]} + do + (( count >= lvlplatinum[level] - platinumcount )) && break 1 + (( count < lvlplatinum[level] - platinumcount )) && never=1 + tableline+=( "$(print_medal $timestamp $stat ${upplatinum[$stat]})" ) + tableline+=( '
' ) + (( count++ )) + done + tableline+=( '' ) + fi + if (( blackcount >= lvlblack[level] )) + then + tableline+=( ''${lvlblack[level]}'' ) + else + tableline+=( "${lvlblack[level]} ($(( blackcount - lvlblack[level] )))
" ) + count=0 + for timestamp in ${!nextblack[@]} + do + if (( timestamp )) + then + thisdate=$(date +%Y-%m-%d -d @$timestamp) + (( timestamp > maxtimestamp )) \ + && maxtimestamp=$timestamp + for stat in ${nextblack[timestamp]} + do + tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]})" ) + tableline+=( '
' ) + (( ++count == lvlblack[level] - blackcount )) && break 2 + done + fi + done + for stat in ${nextblack[0]} + do + (( count >= lvlblack[level] - blackcount )) && break 1 + (( count < lvlblack[level] - blackcount )) && never=1 + tableline+=( "$(print_medal $timestamp $stat ${upblack[$stat]})" ) + tableline+=( '
' ) + (( count++ )) + done + tableline+=( '' ) + fi if (( level <= curlevel )) then echo "$level" else - echo "$level" + cat <<-EOHTML + + $level + EOHTML fi - if (( last["AP"] >= lvl[level] )) + echo "${tableline[@]}" + if (( level > curlevel )) then - echo '' - printf "%'li" ${lvl[level]} - echo '' - else - readable=$(printf "%'li" ${lvl[level]}) - echo ''"${readable// / }" - readable=$(printf "%'li" $(( last["AP"] - lvl[level] ))) - echo "
(${readable// / })" - fi - if (( silvercount >= lvlsilver[level] )) - then - echo ''${lvlsilver[level]}'' - else - echo "${lvlsilver[level]} ($(( silvercount - lvlsilver[level] )))
" - count=0 - for id in {100..0} - do - [ -z "${upsilver[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upsilver[id]} - do - img=${stat,,} - cat <<-EOHTML - - $stat silver - - EOHTML - (( count++ == lvlsilver[level] - silvercount )) && break 2 - done - done - echo '' - fi - if (( goldcount >= lvlgold[level] )) - then - echo ''${lvlgold[level]}'' - else - echo "${lvlgold[level]} ($(( goldcount - lvlgold[level] )))
" - count=0 - for id in {100..0} - do - [ -z "${upgold[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upgold[id]} - do - img=${stat,,} - cat <<-EOHTML - - $stat gold - - EOHTML - (( count++ == lvlgold[level] - goldcount )) && break 2 - done - done - echo '' - fi - if (( platinumcount >= lvlplatinum[level] )) - then - echo ''${lvlplatinum[level]}'' - else - echo "${lvlplatinum[level]} ($(( platinumcount - lvlplatinum[level] )))
" - count=0 - for id in {100..0} - do - [ -z "${upplatinum[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upplatinum[id]} - do - img=${stat,,} - cat <<-EOHTML - - $stat platinum - - EOHTML - (( count++ == lvlplatinum[level] - platinumcount )) && break 2 - done - done - echo '' - fi - if (( blackcount >= lvlblack[level] )) - then - echo ''${lvlblack[level]}'' - else - echo "${lvlblack[level]} ($(( blackcount - lvlblack[level] )))
" - count=0 - for id in {100..0} - do - [ -z "${upblack[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upblack[id]} - do - img=${stat,,} - cat <<-EOHTML - - $stat black - - EOHTML - (( count++ == lvlblack[level] - blackcount )) && break 2 - done - done - echo '' + cat <<-EOHTML + $(date +%Y-%m-%d -d @$maxtimestamp) + EOHTML fi echo '' done @@ -415,7 +441,7 @@ then - Generated by IngRRD © 2014 Vincent Riquer + Generated by IngRRD © 2014-2015 Vincent Riquer diff --git a/ingrrd.css b/ingrrd.css index c22b952..f847925 100644 --- a/ingrrd.css +++ b/ingrrd.css @@ -113,7 +113,7 @@ th.AP,td.AP { } th.badge,td.badge { - width: 170px; +/* width: 170px;*/ } a.badge { diff --git a/lib/get_next_level b/lib/get_next_level new file mode 100644 index 0000000..973318d --- /dev/null +++ b/lib/get_next_level @@ -0,0 +1,108 @@ +#!/bin/bash + +get_next_level() { + local level + next=() + for (( level = curlevel + 1; level <= 16; level++)) + do + if (( lvl[level] > last["AP"] )) + then + next+=( + CDEF:nextcross$level=pred,${lvl[level]},GE,pred,UNKN,IF + VDEF:nexttime$level=nextcross$level,FIRST + "PRINT:nexttime$level:$level %s:strftime" + ) + fi + done + { + read + while read level timestamp + do + nextlevels[level]=$timestamp + done + } < <( + rrdtool graph /dev/null -s ${first["time"]%:} -e +15y \ + DEF:data=$rrdfile:AP:AVERAGE:step=600 \ + VDEF:intercept=data,LSLINT \ + VDEF:growth=data,LSLSLOPE \ + CDEF:trend=data,POP,COUNT,growth,*,intercept,+ \ + CDEF:pred=TIME,NOW,GE,trend,UNKN,IF \ + "${next[@]}" + ) + + for stat in ${medals[@]} + do + next=() + if ! (( hasbronze[$stat] )) + then + next+=( + CDEF:nextcrossbronze=pred,${bronze[$stat]},GE,pred,UNKN,IF + VDEF:nexttimebronze=nextcrossbronze,FIRST + "PRINT:nexttimebronze:bronze %s:strftime" + ) + fi + if ! (( hassilver[$stat] )) + then + next+=( + CDEF:nextcrosssilver=pred,${silver[$stat]},GE,pred,UNKN,IF + VDEF:nexttimesilver=nextcrosssilver,FIRST + "PRINT:nexttimesilver:silver %s:strftime" + ) + fi + if ! (( hasgold[$stat] )) + then + next+=( + CDEF:nextcrossgold=pred,${gold[$stat]},GE,pred,UNKN,IF + VDEF:nexttimegold=nextcrossgold,FIRST + "PRINT:nexttimegold:gold %s:strftime" + ) + fi + if ! (( hasplatinum[$stat] )) + then + next+=( + CDEF:nextcrossplatinum=pred,${platinum[$stat]},GE,pred,UNKN,IF + VDEF:nexttimeplatinum=nextcrossplatinum,FIRST + "PRINT:nexttimeplatinum:platinum %s:strftime" + ) + fi + if ! (( hasblack[$stat] )) + then + next+=( + CDEF:nextcrossblack=pred,${black[$stat]},GE,pred,UNKN,IF + VDEF:nexttimeblack=nextcrossblack,FIRST + "PRINT:nexttimeblack:black %s:strftime" + ) + fi + { + read + while read matter timestamp + do + case $matter in + bronze) + nextbronze[timestamp]+="$stat " + ;; + silver) + nextsilver[timestamp]+="$stat " + ;; + gold) + nextgold[timestamp]+="$stat " + ;; + platinum) + nextplatinum[timestamp]+="$stat " + ;; + black) + nextblack[timestamp]+="$stat " + ;; + esac + done + } < <( + rrdtool graph /dev/null -s ${first["time"]%:} -e +15y \ + DEF:data=$rrdfile:$stat:AVERAGE:step=600 \ + VDEF:intercept=data,LSLINT \ + VDEF:growth=data,LSLSLOPE \ + CDEF:trend=data,POP,COUNT,growth,*,intercept,+ \ + CDEF:pred=TIME,NOW,GE,trend,UNKN,IF \ + "${next[@]}" + ) + done +} diff --git a/lib/globals b/lib/globals index f4eb12f..199d439 100644 --- a/lib/globals +++ b/lib/globals @@ -6,6 +6,17 @@ declare -A \ nogold \ noplatinum \ noblack \ + upbronze \ + upsilver \ + upgold \ + upplatinum \ + upblack \ + hasbronze \ + hassilver \ + hasgold \ + hasplatinum \ + hasblack \ + first \ declare -a \ bronzes \ @@ -13,11 +24,11 @@ declare -a \ golds \ platinums \ blacks \ - upbronze \ - upsilver \ - upgold \ - upplatinum \ - upblack \ + nextbronze \ + nextsilver \ + nextgold \ + nextplatinum \ + nextblack \ declare -i \ bronzecount \ @@ -33,6 +44,7 @@ declare \ graph \ start \ end \ + prevperiod \ want_ds=( AP diff --git a/lib/medals b/lib/medals index d6d4131..1c89fc9 100644 --- a/lib/medals +++ b/lib/medals @@ -1,4 +1,4 @@ -#!/bin/bash +/bin/bash: :n: command not found medals() { local \ @@ -51,16 +51,18 @@ medals() { then (( bronzecount++ )) bronzes+=( "$stat" ) + hasbronze["$stat"]=1 else - upbronze[last["$stat"] * 100 / bronze["$stat"]]+="$stat " + (( upbronze["$stat"]=last["$stat"] * 100 / bronze["$stat"])) fi if (( last["$stat"] >= silver["$stat"] )) then (( silvercount++ )) silvers+=( "$stat" ) + hassilver["$stat"]=1 elif (( last["$stat"] >= bronze["$stat"] )) then - upsilver[( last["$stat"] - bronze["$stat"] ) * 100 / ( silver["$stat"] - bronze["$stat"] )]+="$stat " + (( upsilver["$stat"]=( last["$stat"] - bronze["$stat"] ) * 100 / ( silver["$stat"] - bronze["$stat"] ) )) else nosilver["$stat"]=1 fi @@ -68,9 +70,10 @@ medals() { then (( goldcount++ )) golds+=( "$stat" ) + hasgold["$stat"]=1 elif (( last["$stat"] >= silver["$stat"] )) then - upgold[( last["$stat"] - silver["$stat"] ) * 100 / ( gold["$stat"] - silver["$stat"] )]+="$stat " + (( upgold["$stat"]=( last["$stat"] - silver["$stat"] ) * 100 / ( gold["$stat"] - silver["$stat"] ) )) else nogold["$stat"]=1 fi @@ -78,9 +81,10 @@ medals() { then (( platinumcount++ )) platinums+=( "$stat" ) + hasplatinum["$stat"]=1 elif (( last["$stat"] >= gold["$stat"] )) then - upplatinum[( last["$stat"] - gold["$stat"] ) * 100 / ( platinum["$stat"] - gold["$stat"] )]+="$stat " + (( upplatinum["$stat"]=( last["$stat"] - gold["$stat"] ) * 100 / ( platinum["$stat"] - gold["$stat"] ) )) else noplatinum["$stat"]=1 fi @@ -88,9 +92,10 @@ medals() { then (( blackcount++ )) blacks+=( "$stat" ) + hasblack["$stat"]=1 elif (( last["$stat"] >= platinum["$stat"] )) then - upblack[( last["$stat"] - platinum["$stat"] ) * 100 / ( black["$stat"] - platinum["$stat"] )]+="$stat " + (( upblack["$stat"]=( last["$stat"] - platinum["$stat"]) * 100 / ( black["$stat"] - platinum["$stat"] ) )) else noblack["$stat"]=1 fi diff --git a/lib/print_medal b/lib/print_medal new file mode 100644 index 0000000..0ed5c62 --- /dev/null +++ b/lib/print_medal @@ -0,0 +1,30 @@ +#!/bin/bash + +print_medal() { + local \ + timestamp=$1 \ + stat=$2 \ + percent=$3 \ + + if (( timestamp )) + then + thisdate=$(date +%Y-%m-%d -d @$timestamp) + else + thisdate="maybe some day..." + fi + img=${stat,,} + (( greenlevel = percent * 255 / 100 )) + (( redlevel = 255 - greenlevel )) + cat <<-EOHTML + + $stat silver +  ($thisdate) + EOHTML +} diff --git a/lib/read_query_string b/lib/read_query_string index 81a52f3..c8be5ea 100644 --- a/lib/read_query_string +++ b/lib/read_query_string @@ -14,6 +14,7 @@ read_query_string() { }" exprtime='[[:alnum:]-]+' exprgraph='[[:alpha:]_]+' + exprprev='[[:digit:]]+[(d(ay)?)(w(eek)?)(month)(y(ear)?)]' while read name value do case $name in @@ -32,6 +33,9 @@ read_query_string() { show) [[ $value == all ]] && show_all=1 ;; + prevperiod) + [[ $value =~ $exprprev ]] && prevperiod=$value + ;; esac done <<<"${query_data//=/ }" fi diff --git a/lib/readlast b/lib/readlast index 91795a9..e870185 100644 --- a/lib/readlast +++ b/lib/readlast @@ -11,6 +11,7 @@ readlast() { rrdtool lastupdate $rrdfile ) indices=( ${lastupdatelines[0]} ) + last["time"]=${lastupdatelines[2]%:*} values=( ${lastupdatelines[2]#*:} ) for index in ${!indices[@]} do diff --git a/lib/readold b/lib/readold new file mode 100644 index 0000000..af8f41e --- /dev/null +++ b/lib/readold @@ -0,0 +1,23 @@ +#!/bin/bash + +readold() { + local when=$1 \ + line \ + dataindex \ + empty \ + id \ + LANG=C + { + read line + dataindex=( $line ) + read empty + read first['time'] $( + for id in ${dataindex[@]} + do + echo "first['"$id"']" + done + ) + } < <( + rrdtool fetch -s "$when" ingress.rrd AVERAGE | sed '/: nan/d' + ) +} diff --git a/lib/show_current_level b/lib/show_current_level index 8b4ee3a..842a4be 100644 --- a/lib/show_current_level +++ b/lib/show_current_level @@ -22,13 +22,15 @@ show_current_level() { EOHTML done - for id in {100..0} + for timestamp in ${!nextbronze[@]} + do + (( timestamp )) || continue + for stat in ${nextbronze[timestamp]} do - [ -z "${upbronze[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upbronze[id]} - do + if (( upbronze[$stat] )) + then + (( greenlevel = upbronze[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) img=${stat,,} cat <<-EOHTML EOHTML - done + fi done + done + for stat in ${nextbronze[0]} + do + img=${stat,,} + if (( upbronze[$stat] )) + then + (( greenlevel = upbronze[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) + cat <<-EOHTML + + $stat bronze + + EOHTML + else + cat <<-EOHTML + + $stat bronze + + EOHTML + fi + done cat <<-EOHTML @@ -62,14 +102,16 @@ show_current_level() { EOHTML done - for id in {100..0} + for timestamp in ${!nextsilver[@]} + do + (( timestamp )) || continue + for stat in ${nextsilver[timestamp]} do - [ -z "${upsilver[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upsilver[id]} - do - img=${stat,,} + img=${stat,,} + if (( upsilver[$stat] )) + then + (( greenlevel = upsilver[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) cat <<-EOHTML EOHTML - done + else + cat <<-EOHTML + + $stat silver + + EOHTML + fi done - for stat in ${!nosilver[@]} - do - img=${stat,,} + done + for stat in ${nextsilver[0]} + do + img=${stat,,} + if (( upsilver[$stat] )) + then + (( greenlevel = upsilver[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) + cat <<-EOHTML + + $stat silver + + EOHTML + else cat <<-EOHTML EOHTML - done + fi + done cat <<-EOHTML @@ -117,14 +194,52 @@ show_current_level() { EOHTML done - for id in {100..0} + for timestamp in ${!nextgold[@]} do - [ -z "${upgold[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upgold[id]} + (( timestamp )) || continue + for stat in ${nextgold[timestamp]} do img=${stat,,} + if (( upgold[$stat] )) + then + (( greenlevel = upgold[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) + cat <<-EOHTML + + $stat gold + + EOHTML + else + cat <<-EOHTML + + $stat gold + + EOHTML + fi + done + done + for stat in ${nextgold[0]} + do + img=${stat,,} + if (( upgold[$stat] )) + then + (( greenlevel = upgold[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) cat <<-EOHTML EOHTML - done - done - for stat in ${!nogold[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat gold - - EOHTML + else + cat <<-EOHTML + + $stat gold + + EOHTML + fi done cat <<-EOHTML @@ -172,14 +286,52 @@ show_current_level() { EOHTML done - for id in {100..0} + for timestamp in ${!nextplatinum[@]} do - [ -z "${upplatinum[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upplatinum[id]} + (( timestamp )) || continue + for stat in ${nextplatinum[timestamp]} do img=${stat,,} + if (( upplatinum[$stat] )) + then + (( greenlevel = upplatinum[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) + cat <<-EOHTML + + $stat platinum + + EOHTML + else + cat <<-EOHTML + + $stat platinum + + EOHTML + fi + done + done + for stat in ${nextplatinum[0]} + do + img=${stat,,} + if (( upplatinum[$stat] )) + then + (( greenlevel = upplatinum[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) cat <<-EOHTML EOHTML - done - done - for stat in ${!noplatinum[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat platinum - - EOHTML + else + cat <<-EOHTML + + $stat platinum + + EOHTML + fi done cat <<-EOHTML @@ -227,14 +378,52 @@ show_current_level() { EOHTML done - for id in {100..0} + for timestamp in ${!nextblack[@]} do - [ -z "${upblack[id]}" ] && continue - (( greenlevel = id * 255 / 100 )) - (( redlevel = 255 - greenlevel )) - for stat in ${upblack[id]} + (( timestamp )) || continue + for stat in ${nextblack[timestamp]} do img=${stat,,} + if (( upblack[$stat] )) + then + (( greenlevel = upblack[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) + cat <<-EOHTML + + $stat black + + EOHTML + else + cat <<-EOHTML + + $stat black + + EOHTML + fi + done + done + for stat in ${nextblack[0]} + do + img=${stat,,} + if (( upblack[$stat] )) + then + (( greenlevel = upblack[$stat] * 255 / 100 )) + (( redlevel = 255 - greenlevel )) cat <<-EOHTML EOHTML - done - done - for stat in ${!noblack[@]} - do - img=${stat,,} - cat <<-EOHTML - - $stat black - - EOHTML + else + cat <<-EOHTML + + $stat black + + EOHTML + fi done cat <<-EOHTML diff --git a/settings b/settings index d5d6237..3e74447 100644 --- a/settings +++ b/settings @@ -31,9 +31,11 @@ L16color=591494 default_start=-604800 default_end=1209600 +default_prevperiod=1m start=$default_start end=$default_end +prevperiod=$default_prevperiod uinames=( AP