Safe Haskell | None |
---|---|
Language | Haskell98 |
Clean configuration files in the INI format.
Format rules and recommendations:
- The
:
syntax is space-sensitive. - Keys are case-sensitive.
- Lower-case is recommended.
- Values can be empty.
- Keys cannot key separators, section delimiters, or comment markers.
- Comments must start at the beginning of the line and start with
;
or#
.
An example configuration file:
# Some comment. [SERVER] port=6667 hostname=localhost ; another comment here [AUTH] user: hello pass: world salt:
Parsing example:
>>>
parseIni "[SERVER]\nport: 6667\nhostname: localhost"
Right (Ini {unIni = fromList [("SERVER",fromList [("hostname","localhost"),("port","6667")])]})
- readIniFile :: FilePath -> IO (Either String Ini)
- parseIni :: Text -> Either String Ini
- lookupValue :: Text -> Text -> Ini -> Either String Text
- readValue :: Text -> Text -> (Text -> Either String (a, Text)) -> Ini -> Either String a
- parseValue :: Text -> Text -> Parser a -> Ini -> Either String a
- sections :: Ini -> [Text]
- keys :: Text -> Ini -> Either String [Text]
- printIni :: Ini -> Text
- writeIniFile :: FilePath -> Ini -> IO ()
- data KeySeparator
- data WriteIniSettings = WriteIniSettings {}
- defaultWriteIniSettings :: WriteIniSettings
- printIniWith :: WriteIniSettings -> Ini -> Text
- writeIniFileWith :: WriteIniSettings -> FilePath -> Ini -> IO ()
- newtype Ini = Ini {}
- iniParser :: Parser Ini
- sectionParser :: Parser (Text, HashMap Text Text)
- keyValueParser :: Parser (Text, Text)
Reading
readValue :: Text -> Text -> (Text -> Either String (a, Text)) -> Ini -> Either String a Source #
Read a value using a reader from Data.Text.Read.
parseValue :: Text -> Text -> Parser a -> Ini -> Either String a Source #
Parse a value using a reader from Data.Attoparsec.Text.
Writing
Advanced writing
data KeySeparator Source #
Either :
or =
.
data WriteIniSettings Source #
Settings determining how an INI file is written.
defaultWriteIniSettings :: WriteIniSettings Source #
The default settings for writing INI files.
printIniWith :: WriteIniSettings -> Ini -> Text Source #
Print an INI config.
writeIniFileWith :: WriteIniSettings -> FilePath -> Ini -> IO () Source #
Print the INI config to a file.
Types
An INI configuration.