@@ -0,0 +1,42 @@
9+import IRTS.CodegenJavaScript
11+import System.Environment
16+data Opts = Opts { inputs :: [FilePath]
20+showUsage = do putStrLn "Usage: idris-node <ibc-files> [-o <output-file>]"
24+getOpts = do xs <- getArgs
25+ return $ process (Opts [] "main.js") xs
27+ process opts ("-o":o:xs) = process (opts { output = o }) xs
28+ process opts (x:xs) = process (opts { inputs = x:inputs opts }) xs
29+ process opts [] = opts
31+jsMain :: Opts -> Idris ()
32+jsMain opts = do elabPrims
33+ loadInputs (inputs opts) Nothing
35+ ir <- compile (Via "node") (output opts) mainProg
36+ runIO $ codegenNode ir
39+main = do opts <- getOpts
40+ if (null (inputs opts))
42+ else runMain (jsMain opts)