@@ -1,13 +1,16 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE OverloadedStrings #-}
3{-# LANGUAGE PatternSynonyms #-}
3{-# LANGUAGE PatternSynonyms #-}
4+{-# LANGUAGE LambdaCase #-}
4module Main (
5module Main (
8#ifndef ghcjs_HOST_OS
9#ifndef ghcjs_HOST_OS
9import Test.DocTest
10import Test.DocTest
11+import System.IO (stderr, BufferMode(..), stdout, hSetBuffering)
10import System.FilePath ((</>))
12import System.FilePath ((</>))
13+import System.Exit (exitWith, ExitCode(..))
11import System.Process (system)
14import System.Process (system)
12import Control.Concurrent (forkIO)
15import Control.Concurrent (forkIO)
13import Control.Monad (void)
16import Control.Monad (void)
@@ -17,12 +20,22 @@ import Paths_jsaddle (getDataDir)
18main :: IO ()
21main :: IO ()
23+ hSetBuffering stdout LineBuffering
24+ hSetBuffering stderr LineBuffering
20#ifdef ghcjs_HOST_OS
25#ifdef ghcjs_HOST_OS
21 putStrLn "TODO find a way to run doctest tests with GHCJS"
26 putStrLn "TODO find a way to run doctest tests with GHCJS"
24 dataDir <- getDataDir
29 dataDir <- getDataDir
30+ node <- system "nodejs --version" >>= \case
31+ ExitSuccess -> return "nodejs"
33+ system (node <> " --version") >>= \case
34+ ExitSuccess -> putStrLn "Node.js found"
36+ putStrLn "Node.js not found"
25− forkIO . void . system $ "node --harmony " <> dataDir </> "data/jsaddle.js"
38+ forkIO . void . system $ node <> " --harmony " <> dataDir </> "data/jsaddle.js"
27 "-hide-all-packages",
40 "-hide-all-packages",
28 "-package=template-haskell-" ++ VERSION_template_haskell,
41 "-package=template-haskell-" ++ VERSION_template_haskell,