propellor-5.3.2: property-based host configuration management in haskell

Safe HaskellNone
LanguageHaskell98

Propellor.Property.ConfFile

Contents

Synopsis

Generic conffiles with sections

type SectionStart = Line -> Bool Source #

find the line that is the start of the wanted section (eg, == "Foo")

type SectionPast = Line -> Bool Source #

find a line that indicates we are past the section (eg, a new section header)

type AdjustSection = [Line] -> [Line] Source #

run on all lines in the section, including the SectionStart line; can add, delete, and modify lines, or even delete entire section

type InsertSection = [Line] -> [Line] Source #

if SectionStart does not find the section in the file, this is used to insert the section somewhere within it

Windows .ini files

type IniSection = String Source #

Name of a section of an .ini file. This value is put in square braces to generate the section header.

type IniKey = String Source #

Name of a configuration setting within a .ini file.

containsIniSetting :: FilePath -> (IniSection, IniKey, String) -> Property UnixLike Source #

Ensures that a .ini file exists and contains a section with a key=value setting.

lacksIniSetting :: FilePath -> (IniSection, IniKey, String) -> Property UnixLike Source #

Removes a key=value setting from a section of an .ini file. Note that the section heading is left in the file, so this is not a perfect reversion of containsIniSetting.

hasIniSection :: FilePath -> IniSection -> [(IniKey, String)] -> Property UnixLike Source #

Ensures that a .ini file exists and contains a section with a given key=value list of settings.

lacksIniSection :: FilePath -> IniSection -> Property UnixLike Source #

Ensures that a .ini file does not contain the specified section.

iniFileContains :: FilePath -> [(IniSection, [(IniKey, String)])] -> RevertableProperty UnixLike UnixLike Source #

Specifies the whole content of a .ini file.

Revertijg this causes the file not to exist.