SysTools.Process

ghc-8.4.4: The GHC API

Safe Haskell | None
Language | Haskell2010

SysTools.Process

Synopsis

- readCreateProcessWithExitCode' :: CreateProcess -> IO (ExitCode, String)
- replaceVar :: (String, String) -> [(String, String)] -> [(String, String)]
- readProcessEnvWithExitCode :: String -> [String] -> (String, String) -> IO (ExitCode, String, String)
- c_locale_env :: (String, String)
- getGccEnv :: [Option] -> IO (Maybe [(String, String)])
- runSomething :: DynFlags -> String -> String -> [Option] -> IO ()
- runSomethingResponseFile :: DynFlags -> (String -> String) -> String -> String -> [Option] -> Maybe [(String, String)] -> IO ()
- runSomethingFiltered :: DynFlags -> (String -> String) -> String -> String -> [Option] -> Maybe FilePath -> Maybe [(String, String)] -> IO ()
- runSomethingWith :: DynFlags -> String -> String -> [Option] -> ([String] -> IO (ExitCode, a)) -> IO a
- handleProc :: String -> String -> IO (ExitCode, r) -> IO r
- builderMainLoop :: DynFlags -> (String -> String) -> FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] -> IO ExitCode
- readerProc :: Chan BuildMessage -> Handle -> (String -> String) -> IO ()
- parseError :: String -> Maybe (String, Int, Int, String)
- breakColon :: String -> Maybe (String, String)
- breakIntColon :: String -> Maybe (Int, String)
- data BuildMessage
  - = BuildMsg !SDoc
  - | BuildError !SrcLoc !SDoc
  - | EOF
- linesPlatform :: String -> [String]

# Documentation

readCreateProcessWithExitCode' #

Arguments

:: CreateProcess |
-> IO (ExitCode, String) | stdout

replaceVar :: (String, String) -> [(String, String)] -> [(String, String)] #

readProcessEnvWithExitCode #

Arguments

:: String | program path
-> [String] | program args
-> (String, String) | addition to the environment
-> IO (ExitCode, String, String) | (exit_code, stdout, stderr)

Version of `System.Process.readProcessWithExitCode` that takes a key-value tuple to insert into the environment.

c_locale_env :: (String, String) #

getGccEnv :: [Option] -> IO (Maybe [(String, String)]) #

runSomething :: DynFlags -> String -> String -> [Option] -> IO () #

runSomethingResponseFile :: DynFlags -> (String -> String) -> String -> String -> [Option] -> Maybe [(String, String)] -> IO () #

Run a command, placing the arguments in an external response file.

This command is used in order to avoid overlong command line arguments on Windows. The command line arguments are first written to an external, temporary response file, and then passed to the linker via @filepath. response files for passing them in. See:

https://gcc.gnu.org/wiki/Response_Files https://ghc.haskell.org/trac/ghc/ticket/10777

runSomethingFiltered :: DynFlags -> (String -> String) -> String -> String -> [Option] -> Maybe FilePath -> Maybe [(String, String)] -> IO () #

runSomethingWith :: DynFlags -> String -> String -> [Option] -> ([String] -> IO (ExitCode, a)) -> IO a #

handleProc :: String -> String -> IO (ExitCode, r) -> IO r #

builderMainLoop :: DynFlags -> (String -> String) -> FilePath -> [String] -> Maybe FilePath -> Maybe [(String, String)] -> IO ExitCode #

readerProc :: Chan BuildMessage -> Handle -> (String -> String) -> IO () #

parseError :: String -> Maybe (String, Int, Int, String) #

breakColon :: String -> Maybe (String, String) #

breakIntColon :: String -> Maybe (Int, String) #

data BuildMessage #

Constructors

BuildMsg !SDoc |
BuildError !SrcLoc !SDoc |
EOF |

linesPlatform :: String -> [String] #