Imported Upstream version 1.7.0
[platform/upstream/augeas.git] / lenses / opendkim.aug
1 module Opendkim =
2   autoload xfm
3
4   (* Inifile.comment is saner than Util.comment regarding spacing after the # *)
5   let comment  = Inifile.comment "#" "#"
6   let eol = Util.eol
7   let empty = Util.empty
8
9   (*
10     The Dataset spec is so broad as to encompass any string (particularly the
11     degenerate 'single literal string' case of a comma separated list with
12     only one item).  So treat them as 'String' types, and it's up to the user to
13     format them correctly.  Given that many of the variants include file paths
14     etc, it's impossible to validate for 'correctness' anyway
15    *)
16   let stringkv_rx = /ADSPAction|AuthservID|AutoRestartRate|BaseDirectory/
17     | /BogusKey|BogusPolicy|Canonicalization|ChangeRootDirectory/
18     | /DiagnosticDirectory|FinalPolicyScript|IdentityHeader|Include|KeyFile/
19     | /LDAPAuthMechanism|LDAPAuthName|LDAPAuthRealm|LDAPAuthUser/
20     | /LDAPBindPassword|LDAPBindUser|Minimum|Mode|MTACommand|Nameservers/
21     | /On-BadSignature|On-Default|On-DNSError|On-InternalError|On-KeyNotFound/
22     | /On-NoSignature|On-PolicyError|On-Security|On-SignatureError|PidFile/
23     | /ReplaceRules|ReportAddress|ReportBccAddress|ResolverConfiguration/
24     | /ScreenPolicyScript|SelectCanonicalizationHeader|Selector|SelectorHeader/
25     | /SenderMacro|SetupPolicyScript|SignatureAlgorithm|SMTPURI|Socket/
26     | /StatisticsName|StatisticsPrefix|SyslogFacility|TemporaryDirectory/
27     | /TestPublicKeys|TrustAnchorFile|UnprotectedKey|UnprotectedPolicy|UserID/
28     | /VBR-Certifiers|VBR-PurgeFields|VBR-TrustedCertifiers|VBR-Type/
29     | /BodyLengthDB|Domain|DontSignMailTo|ExemptDomains|ExternalIgnoreList/
30     | /InternalHosts|KeyTable|LocalADSP|MacroList|MTA|MustBeSigned|OmitHeaders/
31     | /OversignHeaders|PeerList|POPDBFile|RemoveARFrom|ResignMailTo/
32     | /SenderHeaders|SignHeaders|SigningTable|TrustSignaturesFrom/
33   let stringkv = key stringkv_rx .
34     del /[ \t]+/ " " . store /[a-zA-Z][^ \t\n#]+/ . eol
35
36   let integerkv_rx = /AutoRestartCount|ClockDrift|DNSTimeout/
37     | /LDAPKeepaliveIdle|LDAPKeepaliveInterval|LDAPKeepaliveProbes|LDAPTimeout/
38     | /MaximumHeaders|MaximumSignaturesToVerify|MaximumSignedBytes|MilterDebug/
39     | /MinimumKeyBits|SignatureTTL|UMask/
40   let integerkv = key integerkv_rx .
41     del /[ \t]+/ " " . store /[0-9]+/ . eol
42
43   let booleankv_rx = /AddAllSignatureResults|ADSPNoSuchDomain/
44     | /AllowSHA1Only|AlwaysAddARHeader|AuthservIDWithJobID|AutoRestart/
45     | /Background|CaptureUnknownErrors|Diagnostics|DisableADSP/
46     | /DisableCryptoInit|DNSConnect|FixCRLF|IdentityHeaderRemove/
47     | /LDAPDisableCache|LDAPSoftStart|LDAPUseTLS|MultipleSignatures|NoHeaderB/
48     | /Quarantine|QueryCache|RemoveARAll|RemoveOldSignatures|ResolverTracing/
49     | /SelectorHeaderRemove|SendADSPReports|SendReports|SoftwareHeader/
50     | /StrictHeaders|StrictTestMode|SubDomains|Syslog|SyslogSuccess/
51     | /VBR-TrustedCertifiersOnly|WeakSyntaxChecks/
52   let booleankv = key booleankv_rx .
53       del /[ \t]+/ " " . store /(true|false|yes|no|1|0)/ . eol
54
55   let entry = [ integerkv ] | [ booleankv ] | [ stringkv ]
56
57   let lns = (comment | empty | entry)*
58
59   let xfm = transform lns (incl "/etc/opendkim.conf")