From 051e9985b14496e8951edd59402e01049956daa4 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Wed, 21 Jun 2017 21:08:20 +0200 Subject: [PATCH] added 'karun' tool for convenient testing of karax apps --- tools/karun.nim | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tools/karun.nim diff --git a/tools/karun.nim b/tools/karun.nim new file mode 100644 index 0000000..dd498ea --- /dev/null +++ b/tools/karun.nim @@ -0,0 +1,41 @@ +## Simple tool to quickly run Karax applications. Generates the HTML +## required to run a Karax app and opens it in a browser. + +import os, strutils, parseopt, browsers + +const + html = """ + + +$1 + +
+ + + +""" + +proc exec(cmd: string) = + if os.execShellCmd(cmd) != 0: + quit "External command failed: " & cmd + +proc main = + var op = initOptParser() + let rest = op.cmdLineRest + var file = "" + while true: + op.next() + case op.kind + of cmdLongOption, cmdShortOption: discard + of cmdArgument: file = op.key + of cmdEnd: break + + if file.len == 0: quit "filename expected" + let name = file.splitFile.name + createDir("nimcache") + exec("nim js --out:nimcache/" & name & ".js " & rest) + let dest = "nimcache" / name & ".html" + writeFile(dest, html % name) + openDefaultBrowser(dest) + +main()