diff options
Diffstat (limited to 'config.nims')
| -rw-r--r-- | config.nims | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/config.nims b/config.nims new file mode 100644 index 0000000..b88d310 --- /dev/null +++ b/config.nims @@ -0,0 +1,68 @@ +import strformat +import strutils +from os import `/` + +task build, "build tools": + mkdir("bin") + exec("nim c -o:bin/update_graphs src/update_graphs.nim") + exec("nim c -o:bin/update_database src/update_database.nim") + +task createdb, "create a new database": + hint("QuitCalled", false) + + # This database will store the following data + # - 1 year worth of samples each 15 minutes + # - average of each day for 10 years + # - min of each day for 10 years + # - max of each day for 10 years + + let + database = thisDir() / "database" / paramStr(2) & ".rrd" + step = 15 * 60 + heartbeat = 20 * 60 + secondsInDay = 24 * 60 * 60 + samplesInDay = secondsInDay div step + secondsInYear = 365 * secondsInDay + samplesInYear = secondsInYear div step + daysIn10Years = 365 * 10 + + if fileExists(database): + echo(&"error: database '{database}' exists") + quit(1) + + echo(&"step = {step} seconds") + echo(&"heartbeat = {heartbeat} seconds") + echo(&"samplesInYear = {samplesInYear}") + echo(&"samplesInDay = {samplesInDay}") + echo(&"daysIn10Years = {daysIn10Years}") + + let args = [ + "create", database, + "--start", "now", + "--step", $step, + &"DS:temperature:GAUGE:{heartbeat}:-40:40", + &"DS:humidity:GAUGE:{heartbeat}:0:100", + &"DS:pressure:GAUGE:{heartbeat}:U:U", + &"DS:battery:GAUGE:{heartbeat}:0:4", + &"RRA:AVERAGE:0.5:1:{samplesInYear}", + &"RRA:MIN:0.5:{samplesInDay}:{daysIn10Years}", + &"RRA:MAX:0.5:{samplesInDay}:{daysIn10Years}", + &"RRA:AVERAGE:0.5:{samplesInDay}:{daysIn10Years}", + ] + + echo("rrdtool " & args.join(" ")) + exec("rrdtool " & args.join(" ")) + +task install_cgi_kapsi, "install cgi script on kapsi.fi": + proc modifyPath(s: string): string = + result = s.replace("/home/users", "/var/www/userhome") + let + databaseDir = modifyPath(thisDir() / "database") + updateDatabasePath = modifyPath(thisDir() / "bin" / "update_database") + scriptPath = paramStr(2) + script = &""" +#!{updateDatabasePath} +databaseDir = "{databaseDir}" +""" + + writeFile(scriptPath, script) |
