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

Propellor.Property.ConfFile

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

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.

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

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.

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

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

Specifies the whole content of a .ini file.

Revertijg this causes the file not to exist.

# Conffiles that are actually shell scripts setting env vars

Key for a shell conffile property. Conventionally uppercase letters and numbers with underscores for separators. See files in /etc/default.

Ensures a shell conffile (like those in /etc/default) exists and has a key=value pair.

Comments out any further settings of that key further down the file, to avoid those taking precedence.

Comments out a key=value pair in a shell conffile.

Does not delete the file if empty, and does not uncomment any lines, so not a perfect reversion of containsShellSetting.