aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2019-11-21 18:32:20 +0200
committerOskari Timperi <oskari.timperi@iki.fi>2019-11-21 18:32:30 +0200
commitbeed591e60224655f38ed4cef14ec4a0a755e7e1 (patch)
treec2908103407cbf055838d055f6f5ff68d274f47f
parent8ea7df854fc10cba9c3a19937e3c06b329bd83be (diff)
downloadweather-beed591e60224655f38ed4cef14ec4a0a755e7e1.tar.gz
weather-beed591e60224655f38ed4cef14ec4a0a755e7e1.zip
Try to simplify paths and configuration
-rw-r--r--src/update_database.nim13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/update_database.nim b/src/update_database.nim
index 0ac4962..e3eae37 100644
--- a/src/update_database.nim
+++ b/src/update_database.nim
@@ -53,13 +53,7 @@ proc readData(): string =
raise newCgiError(400, "not enough data")
proc main() =
- if paramCount() != 2:
- raise newCgiError(500, "one argument required")
-
- let config = loadConfig(paramStr(1))
- let databaseDir = config.getSectionValue("", "databaseDir")
- if databaseDir == "":
- raise newCgiError(500, "databaseDir is empty")
+ let databaseDir = getAppDir().parentDir() / "database"
if getEnv("REQUEST_METHOD") != "POST":
raise newCgiError(400, "request method must be POST")
@@ -71,6 +65,10 @@ proc main() =
if not filename.startsWith(databaseDir):
raise newCgiError(400, "invalid database")
+
+ if not fileExists(filename):
+ raise newCgiError(400, "unknown database")
+
let
timestamp = measurement["timestamp"].getBiggestInt()
temperature = measurement["temperature"].getFloat()
@@ -79,6 +77,7 @@ proc main() =
battery = measurement["battery_potential"].getFloat()
data = &"{timestamp}:{temperature}:{humidity}:{pressure}:{battery}"
(_, ec) = execCmdEx(&"rrdtool update {filename} {data}")
+
if ec != 0:
raise newCgiError(500, "rrdtool failed")