dhall-1.42.1: A configuration language guaranteed to terminate

Safe Haskell | Safe-Inferred
Language | Haskell2010

Dhall.Util

Description

Shared utility functions

Synopsis

- snip :: Text -> Text
- snipDoc :: Doc Ann -> Doc a
- insert :: Pretty a => a -> Doc Ann
- _ERROR :: IsString string => string
- data Censor
  - = NoCensor
  - | Censor
- data Input
  - = StandardInput
  - | InputFile FilePath
- data Transitivity
  - = NonTransitive
  - | Transitive
- data OutputMode
  - = Write
  - | Check
- data Output
  - = StandardOutput
  - | OutputFile FilePath
- getExpression :: Censor -> Input -> IO (Expr Src Import)
- getExpressionAndHeader :: Censor -> Input -> IO (Header, Expr Src Import)
- getExpressionAndHeaderFromStdinText :: Censor -> String -> Text -> IO (Header, Expr Src Import)
- newtype Header = Header Text
- newtype CheckFailed = CheckFailed {
  - input :: Input
  }
- data MultipleCheckFailed = MultipleCheckFailed {
  - command :: Text
  - modified :: Text
  - inputs :: NonEmpty Input
  }
- handleMultipleChecksFailed :: (Foldable t, Traversable t) => Text -> Text -> (a -> IO (Either CheckFailed ())) -> t a -> IO ()
- renderExpression :: Pretty a => CharacterSet -> Bool -> Maybe FilePath -> Expr Src a -> IO ()

# Documentation

snip :: Text -> Text Source #

Utility function to cut out the interior of a large text block

snipDoc :: Doc Ann -> Doc a Source #

Like `snip`, but for `Doc`s

Note that this has to be opinionated and render ANSI color codes, but that should be fine because we don't use this in a non-interactive context

insert :: Pretty a => a -> Doc Ann Source #

Function to insert an aligned pretty expression

_ERROR :: IsString string => string Source #

Prefix used for error messages

data Censor Source #

Set to `Censor` if you want to censor error text that might include secrets

Constructors

NoCensor |
Censor |

data Input Source #

Path to input

Constructors

StandardInput |
InputFile FilePath |

#### Instances

Instances details

Eq Input Source # |
Instance details Defined in Dhall.Util Methods (==) :: Input -> Input -> Bool Source # (/=) :: Input -> Input -> Bool Source #

data Transitivity Source #

Specifies whether or not an input's transitive dependencies should also be processed. Transitive dependencies are restricted to relative file imports.

Constructors

NonTransitive | Do not process transitive dependencies
Transitive | Process transitive dependencies in the same way

data OutputMode Source #

Some command-line subcommands can either `Write` their input or `Check` that the input has already been modified. This type is shared between them to record that choice.

Constructors

Write |
Check |

data Output Source #

Path to output

Constructors

StandardOutput |
OutputFile FilePath |

getExpression :: Censor -> Input -> IO (Expr Src Import) Source #

Convenient utility for retrieving an expression

getExpressionAndHeader :: Censor -> Input -> IO (Header, Expr Src Import) Source #

Convenient utility for retrieving an expression along with its header

getExpressionAndHeaderFromStdinText :: Censor -> String -> Text -> IO (Header, Expr Src Import) Source #

Convenient utility for retrieving an expression along with its header from | text already read from STDIN (so it's not re-read)

newtype Header Source #

A header corresponds to the leading comment at the top of a Dhall file.

The header includes comment characters but is stripped of leading spaces and trailing newlines

Constructors

Header Text |

#### Instances

Instances details

Show Header Source # |
Instance details Defined in Dhall.Parser Methods showsPrec :: Int -> Header -> ShowS Source # show :: Header -> String Source # showList :: [Header] -> ShowS Source #

newtype CheckFailed Source #

A check failure corresponding to a single input. This type is intended to be used with `MultipleCheckFailed` for error reporting.

Constructors

CheckFailed |

Fields

- input :: Input

data MultipleCheckFailed Source #

Exception thrown when the `--check` flag to a command-line subcommand fails

Constructors

MultipleCheckFailed |

Fields

- command :: Text
- modified :: Text
- inputs :: NonEmpty Input

#### Instances

Instances details

Exception MultipleCheckFailed Source # |
Instance details Defined in Dhall.Util Methods toException :: MultipleCheckFailed -> SomeException Source # fromException :: SomeException -> Maybe MultipleCheckFailed Source # displayException :: MultipleCheckFailed -> String Source #
Show MultipleCheckFailed Source # |
Instance details Defined in Dhall.Util Methods showsPrec :: Int -> MultipleCheckFailed -> ShowS Source # show :: MultipleCheckFailed -> String Source # showList :: [MultipleCheckFailed] -> ShowS Source #

handleMultipleChecksFailed :: (Foldable t, Traversable t) => Text -> Text -> (a -> IO (Either CheckFailed ())) -> t a -> IO () Source #

Run IO for multiple inputs, then collate all the check failures before throwing if there was any failure

renderExpression :: Pretty a => CharacterSet -> Bool -> Maybe FilePath -> Expr Src a -> IO () Source #

Convenient utility to output an expression either to a file or to stdout.