From 879568cd04a924b24a12e1cf2f298a85fe5f1de5 Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Thu, 25 Jul 2019 12:21:49 +0200 Subject: [PATCH] WIP --- src/etherpad2latex.nim | 43 ++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/src/etherpad2latex.nim b/src/etherpad2latex.nim index 89307b4..8bcf21e 100644 --- a/src/etherpad2latex.nim +++ b/src/etherpad2latex.nim @@ -1,24 +1,39 @@ -import asynchttpserver, asyncdispatch +import asynchttpserver, asyncdispatch, httpclient 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") + 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) when isMainModule: var + p = initOptParser() + port = 8080 + etherpadAddress = "http://localhost:9001/" server = newAsyncHttpServer() - waitFor server.serve(Port(8080), requestHandler) + + # Parse command-line args + while true: + p.next() + case p.kind + of cmdEnd: break + of cmdShortOption, cmdLongOption: + case p.key + of "p", "port": + port = p.val.parseInt + of "a", "etherpad-address": + etherpadAddress = p.val + else: discard + of cmdArgument: continue + + waitFor server.serve(Port(port), requestHandler)