diff --git a/etherpad2latex.nimble b/etherpad2latex.nimble new file mode 100644 index 0000000..91ccd6e --- /dev/null +++ b/etherpad2latex.nimble @@ -0,0 +1,14 @@ +# Package + +version = "0.1.0" +author = "joachimschmidt557" +description = "Fetch and compile latex from etherpad" +license = "MIT" +srcDir = "src" +bin = @["etherpad2latex"] + + + +# Dependencies + +requires "nim >= 0.20.0" diff --git a/server.nim b/server.nim deleted file mode 100644 index 2a04dcb..0000000 --- a/server.nim +++ /dev/null @@ -1,23 +0,0 @@ -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) diff --git a/src/.gitignore b/src/.gitignore new file mode 100644 index 0000000..ce6b1e3 --- /dev/null +++ b/src/.gitignore @@ -0,0 +1 @@ +etherpad2latex \ No newline at end of file diff --git a/src/etherpad2latex.nim b/src/etherpad2latex.nim new file mode 100644 index 0000000..89307b4 --- /dev/null +++ b/src/etherpad2latex.nim @@ -0,0 +1,24 @@ +import asynchttpserver, asyncdispatch +import osproc, strutils, parseopt + +proc getContent(pad:string):string = + discard + +proc requestHandler(req:Request) {.async.} = + if req.url.path.startsWith("/compile"): + let + padName = req.url.path + content = getContent(padName) + let (output, exitCode) = execCmdEx("make") + let headers = if exitCode == 0: newHttpHeaders([("Content-Type","application/pdf")]) + else: newHttpHeaders([("Content-Type","text/plain")]) + let pdf = if exitCode == 0: readFile("Abgabe.pdf") + else: output + await req.respond(Http200, pdf, headers) + else: + await req.respond(Http404, "Not a valid API call") + +when isMainModule: + var + server = newAsyncHttpServer() + waitFor server.serve(Port(8080), requestHandler)