etherpad2latex/server.nim
2019-07-17 12:27:20 +02:00

23 lines
938 B
Nim

import asynchttpserver, asyncdispatch
import osproc
proc requestHandler(req:Request) {.async.} =
if req.url.path == "/compile":
let (output, exitCode) = execCmdEx("make")
let headers = if exitCode == 0: newHttpHeaders([("Content-Type","application/pdf")])
else: newHttpHeaders([("Content-Type","text/plain")])
let content = if exitCode == 0: readFile("Abgabe.pdf")
else: output
await req.respond(Http200, content, headers)
elif req.url.path == "/backup":
let (output, exitCode) = execCmdEx("make backup")
let headers = newHttpHeaders([("Content-Type","text/plain")])
let content = if exitCode == 0: "Backup succeded"
else: output
await req.respond(Http200, content, headers)
else:
await req.respond(Http404, "Not a valid API call")
when isMainModule:
var server = newAsyncHttpServer()
waitFor server.serve(Port(8080), requestHandler)