@@ -1,12 +1,17 @@
1−{-# LANGUAGE CPP #-}
1+{-# LANGUAGE CPP, ForeignFunctionInterface #-}
2module Util.System(tempfile,withTempdir,rmFile,catchIO, isWindows,
2module Util.System(tempfile,withTempdir,rmFile,catchIO, isWindows,
3 writeSource, writeSourceText, readSource,
3 writeSource, writeSourceText, readSource,
4− setupBundledCC) where
4+ setupBundledCC, isATTY) where
6-- System helper functions.
6-- System helper functions.
8+import Control.Exception as CE
7import Control.Monad (when)
9import Control.Monad (when)
8import qualified Data.Text as T
10import qualified Data.Text as T
9import qualified Data.Text.IO as TIO
11import qualified Data.Text.IO as TIO
10import System.Directory (getTemporaryDirectory
15import System.Directory (getTemporaryDirectory
11 , removeFile
16 , removeFile
12 , removeDirectoryRecursive
17 , removeDirectoryRecursive
@@ -17,7 +22,6 @@ import System.FilePath ((</>), normalise, isAbsolute, dropFileName)
17import System.IO
22import System.IO
18import System.Info
23import System.Info
19import System.IO.Error
24import System.IO.Error
20−import Control.Exception as CE
22#ifdef FREESTANDING
26#ifdef FREESTANDING
23import Tools_idris
27import Tools_idris
@@ -51,6 +55,13 @@ writeSource f s = withFile f WriteMode (\h -> hSetEncoding h utf8 >> hPutStr h s
51writeSourceText :: FilePath -> T.Text -> IO ()
55writeSourceText :: FilePath -> T.Text -> IO ()
52writeSourceText f s = withFile f WriteMode (\h -> hSetEncoding h utf8 >> TIO.hPutStr h s)
56writeSourceText f s = withFile f WriteMode (\h -> hSetEncoding h utf8 >> TIO.hPutStr h s)
58+foreign import ccall "isatty" isATTYRaw :: CInt -> IO CInt
62+ tty <- isATTYRaw 1 -- fd stdout
54withTempdir :: String -> (FilePath -> IO a) -> IO a
65withTempdir :: String -> (FilePath -> IO a) -> IO a
55withTempdir subdir callback
66withTempdir subdir callback
56 = do dir <- getTemporaryDirectory
67 = do dir <- getTemporaryDirectory