GHC.SysTools

ghc-9.14.0.20251028: The GHC API

Safe Haskell | None
Language | GHC2021

GHC.SysTools

Contents

- Initialisation
- Interface to system tools
- Fast file copy
- General utilities

Synopsis

- initSysTools :: String -> IO Settings
- module GHC.SysTools.Tasks
- copyFile :: FilePath -> FilePath -> IO ()
- copyHandle :: Handle -> Handle -> IO ()
- copyWithHeader :: String -> FilePath -> FilePath -> IO ()
- data Option
  - = FileOption String String
  - | Option String
- expandTopDir :: FilePath -> String -> String

# Initialisation

initSysTools :: String -> IO Settings Source #

# Interface to system tools

module GHC.SysTools.Tasks

# Fast file copy

copyFile Source #

Arguments

:: FilePath | Source filename
-> FilePath | Destination filename
-> IO () |

Copy a file with its permissions. If the destination file already exists, it is replaced atomically. Neither path may refer to an existing directory. No exceptions are thrown if the permissions could not be copied.

copyHandle :: Handle -> Handle -> IO () Source #

Copy remaining bytes from the first Handle to the second one

copyWithHeader :: String -> FilePath -> FilePath -> IO () Source #

Copy file after printing the given header

# General utilities

data Option Source #

When invoking external tools as part of the compilation pipeline, we pass these a sequence of options on the command-line. Rather than just using a list of Strings, we use a type that allows us to distinguish between filepaths and 'other stuff'. The reason for this is that this type gives us a handle on transforming filenames, and filenames only, to whatever format they're expected to be on a particular platform.

Constructors

FileOption String String |
Option String |

#### Instances

Instances details

Eq Option Source # |
Instance details Defined in GHC.Utils.CliOption Methods (==) :: Option -> Option -> Bool Source # (/=) :: Option -> Option -> Bool Source #

expandTopDir :: FilePath -> String -> String Source #

Expand occurrences of the `$topdir` interpolation in a string.