diff options
| author | Oskari Timperi <oskari.timperi@iki.fi> | 2019-11-21 18:32:20 +0200 |
|---|---|---|
| committer | Oskari Timperi <oskari.timperi@iki.fi> | 2019-11-21 18:32:30 +0200 |
| commit | beed591e60224655f38ed4cef14ec4a0a755e7e1 (patch) | |
| tree | c2908103407cbf055838d055f6f5ff68d274f47f | |
| parent | 8ea7df854fc10cba9c3a19937e3c06b329bd83be (diff) | |
| download | weather-beed591e60224655f38ed4cef14ec4a0a755e7e1.tar.gz weather-beed591e60224655f38ed4cef14ec4a0a755e7e1.zip | |
Try to simplify paths and configuration
| -rw-r--r-- | src/update_database.nim | 13 |
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") |
