This file is indexed.

/usr/share/doc/augeas-doc/lenses/files/syslog-aug.html is in augeas-doc 0.10.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Syslog - Augeas Documentation</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/prettify.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.51 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CAugeasModule"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Syslog"></a>Syslog</h1><div class=CBody><p>parses /etc/syslog.conf</p><p>Author: Mathieu Arnold <a href="#" onClick="location.href='mai' + 'lto:' + 'm' + 'at' + '@' + 'FreeB' + 'SD.org'; return false;" class=LEMail>m<span style="display: none">.nosp@m.</span>at<span>@</span>FreeB<span style="display: none">.nosp@m.</span>SD.org</a></p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Syslog" >Syslog</a></td><td class=SDescription>parses /etc/syslog.conf</td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Syslog.Reference" >Reference</a></td><td class=SDescription>This lens tries to keep as close as possible to `man 5 resolv.conf` where possible. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Syslog.Licence" >Licence</a></td><td class=SDescription>This file is licensed under the BSD License.</td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Syslog.Lens_Usage" >Lens Usage</a></td><td class=SDescription>To be documented</td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Syslog.Configuration_files" >Configuration files</a></td><td class=SDescription>This lens applies to /etc/syslog.conf. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.USEFUL_PRIMITIVES" >USEFUL PRIMITIVES</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.Comments_and_empty_lines" >Comments and empty lines</a></td><td class=SDescription></td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.empty" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">empty</a></td><td class=SDescription></td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.eol" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">eol</a></td><td class=SDescription></td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.sep_tab" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">sep_tab</a></td><td class=SDescription></td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.sep_tab_opt" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">sep_tab_opt</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.comment" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">comment</a></td><td class=SDescription>Map comments into &ldquo;#comment&rdquo; nodes Can&rsquo;t use Util.comment as #+ and #!&nbsp; </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.single_characters_macro" >single characters macro</a></td><td class=SDescription></td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.comma" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">comma</a></td><td class=SDescription>Deletes a comma and default to it</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.colon" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">colon</a></td><td class=SDescription>Deletes a colon and default to it</td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.semicolon" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">semicolon</a></td><td class=SDescription>Deletes a semicolon and default to it</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.at" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">at</a></td><td class=SDescription>Deletes a at and default to it</td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.dot" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">dot</a></td><td class=SDescription>Deletes a dot and default to it</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.pipe" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">pipe</a></td><td class=SDescription>Deletes a pipe and default to it</td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.plus" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">plus</a></td><td class=SDescription>Deletes a plus and default to it</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.bang" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">bang</a></td><td class=SDescription>Deletes a bang and default to it</td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.opt_hash" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">opt_hash</a></td><td class=SDescription>deletes an optional # sign</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.opt_plus" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">opt_plus</a></td><td class=SDescription>deletes an optional + sign</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.various_macros" >various macros</a></td><td class=SDescription></td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.word" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">word</a></td><td class=SDescription>our version can&rsquo;t start with [_.-] because it would mess up the grammar</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.comparison" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">comparison</a></td><td class=SDescription>a comparison is an optional ! </td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.token" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">token</a></td><td class=SDescription>alphanum or &ldquo;*&rdquo;</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.file_r" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">file_r</a></td><td class=SDescription>a file begins with a / and get almost anything else after</td></tr><tr class="SAugeasVariable SIndent2 SMarked"><td class=SEntry><a href="#Syslog.loghost_r" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">loghost_r</a></td><td class=SDescription>Matches a hostname, that is labels speparated by dots, labels can&rsquo;t start or end with a &ldquo;-&rdquo;. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.Function" >Function</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.label_opt_list" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">label_opt_list</a></td><td class=SDescription>Uses Build.opt_list to generate a list of labels</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.label_opt_list_or" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">label_opt_list_or</a></td><td class=SDescription>Either label_opt_list matches something or it emits a single label with the &ldquo;or&rdquo; string.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.LENSE_DEFINITION" >LENSE DEFINITION</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.selector" >selector</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.facilities" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">facilities</a></td><td class=SDescription>a list of facilities, separated by commas</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.selector" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">selector</a></td><td class=SDescription>a selector is a list of facilities, an optional comparison and a level</td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.selectors" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">selectors</a></td><td class=SDescription>a list of selectors, separated by semicolons</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.action" >action</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.file" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">file</a></td><td class=SDescription>a file may start with a &ldquo;-&rdquo; meaning it does not gets sync&rsquo;ed everytime</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.loghost" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">loghost</a></td><td class=SDescription>a loghost is an @  sign followed by the hostname and a possible port</td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.users" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">users</a></td><td class=SDescription>a list of users or a &ldquo;*&rdquo;</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.logprogram" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">logprogram</a></td><td class=SDescription>a log program begins with a pipe</td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.action" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">action</a></td><td class=SDescription>an action is either a file, a host, users, or a program</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.Entry" >Entry</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.entry" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">entry</a></td><td class=SDescription>an entry contains selectors and an action</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.entries" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">entries</a></td><td class=SDescription>entries are either comments/empty lines or entries</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.Program_matching" >Program matching</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.programs" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">programs</a></td><td class=SDescription>a list of programs</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.program" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">program</a></td><td class=SDescription>a program begins with an optional hash, a bang, and an optional + or -</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.Hostname_maching" >Hostname maching</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.hostnames" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">hostnames</a></td><td class=SDescription>a list of hostnames</td></tr><tr class="SAugeasLens SIndent2"><td class=SEntry><a href="#Syslog.hostname" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">hostname</a></td><td class=SDescription>a program begins with an optional hash, and a + or -</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Syslog.Top_of_the_tree" >Top of the tree</a></td><td class=SDescription></td></tr><tr class="SAugeasLens SIndent2 SMarked"><td class=SEntry><a href="#Syslog.lns" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">lns</a></td><td class=SDescription>generic entries then programs or hostnames matching blocs</td></tr><tr class="SAugeasVariable SIndent2"><td class=SEntry><a href="#Syslog.filter" >filter</a></td><td class=SDescription>all you need is /etc/syslog.conf</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Syslog.Reference"></a>Reference</h3><div class=CBody><p>This lens tries to keep as close as possible to `man 5 resolv.conf` where possible.&nbsp; An online source being : <a href="http://www.freebsd.org/cgi/man.cgi?query=syslog.conf&amp;sektion=5" class=LURL target=_top>http://www.freebsd.org<wbr>/cgi<wbr>/man.cgi?query=syslog.conf<wbr>&amp;sektion=5</a></p></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Syslog.Licence"></a>Licence</h3><div class=CBody><p>This file is licensed under the BSD License.</p></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Syslog.Lens_Usage"></a>Lens Usage</h3><div class=CBody><p>To be documented</p></div></div></div>

<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Syslog.Configuration_files"></a>Configuration files</h3><div class=CBody><p>This lens applies to /etc/syslog.conf.&nbsp; See <a href="#Syslog.filter" class=LAugeasVariable id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">filter</a>.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.USEFUL_PRIMITIVES"></a>USEFUL PRIMITIVES</h3></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.Comments_and_empty_lines"></a>Comments and empty lines</h3></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.empty"></a>empty</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let empty      = Util.empty</td></tr></table></blockquote></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.eol"></a>eol</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let eol        = Util.eol</td></tr></table></blockquote></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.sep_tab"></a>sep_tab</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let sep_tab    = del /([ \t]+|[ \t]*\\\\\n[ \t]*)/ &quot;\t&quot;
</td></tr></table></blockquote></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.sep_tab_opt"></a>sep_tab_opt</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let sep_tab_opt = del /([ \t]*|[ \t]*\\\\\n[ \t]*)/ &quot;&quot;
</td></tr></table></blockquote></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.comment"></a>comment</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let comment =
	  [ label &quot;#comment&quot; . del /#[ \t]*/ &quot;# &quot;
	      . store /([^ \t\n+!-].*[^ \t\n]|[^ \t\n+!-])/ . eol ]
</td></tr></table></blockquote><p>Map comments into &ldquo;#comment&rdquo; nodes Can&rsquo;t use Util.comment as #+ and #! have a special meaning</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.single_characters_macro"></a>single characters macro</h3></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.comma"></a>comma</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let comma      = sep_tab_opt . Util.del_str &quot;,&quot; . sep_tab_opt</td></tr></table></blockquote><p>Deletes a comma and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.colon"></a>colon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let colon      = sep_tab_opt . Util.del_str &quot;:&quot; . sep_tab_opt</td></tr></table></blockquote><p>Deletes a colon and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.semicolon"></a>semicolon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let semicolon  = sep_tab_opt . Util.del_str &quot;;&quot; . sep_tab_opt</td></tr></table></blockquote><p>Deletes a semicolon and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.at"></a>at</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let at         = Util.del_str &quot;@&quot;</td></tr></table></blockquote><p>Deletes a at and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.dot"></a>dot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let dot        = Util.del_str &quot;.&quot;</td></tr></table></blockquote><p>Deletes a dot and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.pipe"></a>pipe</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let pipe       = Util.del_str &quot;|&quot;</td></tr></table></blockquote><p>Deletes a pipe and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.plus"></a>plus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let plus       = Util.del_str &quot;+&quot;</td></tr></table></blockquote><p>Deletes a plus and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.bang"></a>bang</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let bang       = Util.del_str &quot;!&quot;
</td></tr></table></blockquote><p>Deletes a bang and default to it</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.opt_hash"></a>opt_hash</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let opt_hash   = del /#?/ &quot;&quot;</td></tr></table></blockquote><p>deletes an optional # sign</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.opt_plus"></a>opt_plus</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let opt_plus   = del /\+?/ &quot;&quot;
</td></tr></table></blockquote><p>deletes an optional + sign</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.various_macros"></a>various macros</h3></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.word"></a>word</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let word      = /[A-Za-z0-9][A-Za-z0-9_.-]*/
</td></tr></table></blockquote><p>our version can&rsquo;t start with [_.-] because it would mess up the grammar</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.comparison"></a>comparison</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let comparison = /(!|[&lt;=&gt;]+|![&lt;=&gt;]+)/
</td></tr></table></blockquote><p>a comparison is an optional ! with optionaly some of [&lt;=&gt;]</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.token"></a>token</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let token      = /([a-z0-9]+|\*)/
</td></tr></table></blockquote><p>alphanum or &ldquo;*&rdquo;</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.file_r"></a>file_r</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let file_r     = /\/[^ \t\n]+/
</td></tr></table></blockquote><p>a file begins with a / and get almost anything else after</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.loghost_r"></a>loghost_r</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let loghost_r = /[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*/
</td></tr></table></blockquote><p>Matches a hostname, that is labels speparated by dots, labels can&rsquo;t start or end with a &ldquo;-&rdquo;.&nbsp;  maybe a bit too complicated for what it&rsquo;s worth</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.Function"></a>Function</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.label_opt_list"></a>label_opt_list</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let label_opt_list (l:string) (r:lens) (s:lens) = Build.opt_list [ label l . r ] s
</td></tr></table></blockquote><p>Uses Build.opt_list to generate a list of labels</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>l:string</td><td class=CDLDescription>the label name</td></tr><tr><td class=CDLEntry>r:lens</td><td class=CDLDescription>the lens going after the label</td></tr><tr><td class=CDLEntry>s:lens</td><td class=CDLDescription>the separator lens passed to Build.opt_list</td></tr></table></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.label_opt_list_or"></a>label_opt_list_or</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let label_opt_list_or (l:string) (r:lens) (s:lens) (or:string) =
	  ( label_opt_list l r s | [ label l . store or ] )

</td></tr></table></blockquote><p>Either label_opt_list matches something or it emits a single label with the &ldquo;or&rdquo; string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>l:string</td><td class=CDLDescription>the label name</td></tr><tr><td class=CDLEntry>r:lens</td><td class=CDLDescription>the lens going after the label</td></tr><tr><td class=CDLEntry>s:lens</td><td class=CDLDescription>the separator lens passed to Build.opt_list</td></tr><tr><td class=CDLEntry>or:string</td><td class=CDLDescription>the string used if the label_opt_list does not match anything</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.LENSE_DEFINITION"></a>LENSE DEFINITION</h3></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.selector"></a>selector</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.facilities"></a>facilities</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let facilities = label_opt_list &quot;facility&quot; (store token) comma
</td></tr></table></blockquote><p>a list of facilities, separated by commas</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.selector"></a>selector</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let selector = facilities . dot .
                       [ label &quot;comparison&quot; . store comparison]? .
                       [ label &quot;level&quot; . store token ]
</td></tr></table></blockquote><p>a selector is a list of facilities, an optional comparison and a level</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.selectors"></a>selectors</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let selectors = label_opt_list &quot;selector&quot; selector semicolon
</td></tr></table></blockquote><p>a list of selectors, separated by semicolons</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.action"></a>action</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.file"></a>file</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let file = [ Build.xchgs &quot;-&quot; &quot;no_sync&quot; ]? . [ label &quot;file&quot; . store file_r ]
</td></tr></table></blockquote><p>a file may start with a &ldquo;-&rdquo; meaning it does not gets sync&rsquo;ed everytime</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.loghost"></a>loghost</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let loghost = at . [ label &quot;hostname&quot; . store loghost_r ] .
	    (colon . [ label &quot;port&quot; . store /[0-9]+/ ] )?
</td></tr></table></blockquote><p>a loghost is an @  sign followed by the hostname and a possible port</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.users"></a>users</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let users = label_opt_list_or &quot;user&quot; (store word) comma &quot;*&quot;
</td></tr></table></blockquote><p>a list of users or a &ldquo;*&rdquo;</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.logprogram"></a>logprogram</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let logprogram = pipe . [ label &quot;program&quot; . store /[^ \t\n][^\n]+[^ \t\n]/ ]
</td></tr></table></blockquote><p>a log program begins with a pipe</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.action"></a>action</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let action = (file | loghost | users | logprogram)
</td></tr></table></blockquote><p>an action is either a file, a host, users, or a program</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.Entry"></a>Entry</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.entry"></a>entry</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let entry = [ label &quot;entry&quot; .
	    selectors . sep_tab .
	    [ label &quot;action&quot; . action ] . eol ]
</td></tr></table></blockquote><p>an entry contains selectors and an action</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.entries"></a>entries</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let entries = (empty | comment | entry)*
</td></tr></table></blockquote><p>entries are either comments/empty lines or entries</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.Program_matching"></a>Program matching</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.programs"></a>programs</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let programs = label_opt_list_or &quot;program&quot; (store word) comma &quot;*&quot;
</td></tr></table></blockquote><p>a list of programs</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.program"></a>program</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let program = [ label &quot;program&quot; . opt_hash . bang .
	      ( opt_plus | [ Build.xchgs &quot;-&quot; &quot;reverse&quot; ] ) .
	      programs . eol .  entries ]
</td></tr></table></blockquote><p>a program begins with an optional hash, a bang, and an optional + or -</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.Hostname_maching"></a>Hostname maching</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.hostnames"></a>hostnames</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let hostnames = label_opt_list_or &quot;hostname&quot; (store Rx.word) comma &quot;*&quot;
</td></tr></table></blockquote><p>a list of hostnames</p></div></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.hostname"></a>hostname</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let hostname = [ label &quot;hostname&quot; . opt_hash .
	      ( plus | [ Build.xchgs &quot;-&quot; &quot;reverse&quot; ] ) .
	      hostnames . eol .  entries ]
</td></tr></table></blockquote><p>a program begins with an optional hash, and a + or -</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Syslog.Top_of_the_tree"></a>Top of the tree</h3></div></div>

<div class="CAugeasLens"><div class=CTopic><h3 class=CTitle><a name="Syslog.lns"></a>lns</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let lns = entries . ( program | hostname )*
</td></tr></table></blockquote><p>generic entries then programs or hostnames matching blocs</p></div></div></div>

<div class="CAugeasVariable"><div class=CTopic><h3 class=CTitle><a name="Syslog.filter"></a>filter</h3><div class=CBody><p>all you need is /etc/syslog.conf</p></div></div></div>

</div><!--Content-->


<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>Augeas Documentation<div class=MSubTitle>Modules</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Main Site</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MLink><a href="/index.html">Main</a></div></div><div class=MEntry><div class=MLink><a href="/docs/index.html">Documentation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Specific Modules</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="access-aug.html">Access</a></div></div><div class=MEntry><div class=MFile><a href="aliases-aug.html">Aliases</a></div></div><div class=MEntry><div class=MFile><a href="approx-aug.html">Approx</a></div></div><div class=MEntry><div class=MFile><a href="aptconf-aug.html">AptConf</a></div></div><div class=MEntry><div class=MFile><a href="backuppchosts-aug.html">BackupPCHosts</a></div></div><div class=MEntry><div class=MFile><a href="cgconfig-aug.html">Cgconfig</a></div></div><div class=MEntry><div class=MFile><a href="cgrules-aug.html">Cgrules</a></div></div><div class=MEntry><div class=MFile><a href="cron-aug.html">Cron</a></div></div><div class=MEntry><div class=MFile><a href="crypttab-aug.html">crypttab.aug</a></div></div><div class=MEntry><div class=MFile><a href="debctrl-aug.html">Debctrl</a></div></div><div class=MEntry><div class=MFile><a href="desktop-aug.html">Desktop</a></div></div><div class=MEntry><div class=MFile><a href="dhcpd-aug.html">Dhcpd</a></div></div><div class=MEntry><div class=MFile><a href="dpkg-aug.html">Dpkg</a></div></div><div class=MEntry><div class=MFile><a href="exports-aug.html">Exports</a></div></div><div class=MEntry><div class=MFile><a href="fai_diskconfig-aug.html">FAI_DiskConfig</a></div></div><div class=MEntry><div class=MFile><a href="grub-aug.html">Grub</a></div></div><div class=MEntry><div class=MFile><a href="hostname-aug.html">Hostname</a></div></div><div class=MEntry><div class=MFile><a href="hosts_access-aug.html">Hosts_Access</a></div></div><div class=MEntry><div class=MFile><a href="host_conf-aug.html">Host_Conf</a></div></div><div class=MEntry><div class=MFile><a href="iptables-aug.html">Iptables</a></div></div><div class=MEntry><div class=MFile><a href="kdump-aug.html">Kdump</a></div></div><div class=MEntry><div class=MFile><a href="keepalived-aug.html">Keepalived</a></div></div><div class=MEntry><div class=MFile><a href="login_defs-aug.html">Login_defs</a></div></div><div class=MEntry><div class=MFile><a href="lokkit-aug.html">Lokkit</a></div></div><div class=MEntry><div class=MFile><a href="mke2fs-aug.html">Mke2fs</a></div></div><div class=MEntry><div class=MFile><a href="modprobe-aug.html">Modprobe</a></div></div><div class=MEntry><div class=MFile><a href="modules-aug.html">Modules</a></div></div><div class=MEntry><div class=MFile><a href="modules_conf-aug.html">Modules_conf</a></div></div><div class=MEntry><div class=MFile><a href="nagioscfg-aug.html">NagiosCfg</a></div></div><div class=MEntry><div class=MFile><a href="nagiosobjects-aug.html">NagiosObjects</a></div></div><div class=MEntry><div class=MFile><a href="networks-aug.html">Networks</a></div></div><div class=MEntry><div class=MFile><a href="nrpe-aug.html">Nrpe</a></div></div><div class=MEntry><div class=MFile><a href="nsswitch-aug.html">Nsswitch</a></div></div><div class=MEntry><div class=MFile><a href="pbuilder-aug.html">Pbuilder</a></div></div><div class=MEntry><div class=MFile><a href="pg_hba-aug.html">Pg_Hba</a></div></div><div class=MEntry><div class=MFile><a href="puppetfileserver-aug.html">PuppetFileserver</a></div></div><div class=MEntry><div class=MFile><a href="reprepro_uploaders-aug.html">Reprepro_Uploaders</a></div></div><div class=MEntry><div class=MFile><a href="resolv-aug.html">Resolv</a></div></div><div class=MEntry><div class=MFile><a href="schroot-aug.html">Schroot</a></div></div><div class=MEntry><div class=MFile><a href="services-aug.html">Services</a></div></div><div class=MEntry><div class=MFile><a href="shells-aug.html">Shells</a></div></div><div class=MEntry><div class=MFile><a href="solaris_system-aug.html">Solaris_System</a></div></div><div class=MEntry><div class=MFile><a href="ssh-aug.html">Ssh</a></div></div><div class=MEntry><div class=MFile><a href="sshd-aug.html">Sshd</a></div></div><div class=MEntry><div class=MFile><a href="sudoers-aug.html">Sudoers</a></div></div><div class=MEntry><div class=MFile id=MSelected>Syslog</div></div><div class=MEntry><div class=MFile><a href="xinetd-aug.html">Xinetd</a></div></div><div class=MEntry><div class=MFile><a href="xorg-aug.html">Xorg</a></div></div><div class=MEntry><div class=MFile><a href="shellvars-aug.html">Shellvars</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Generic Modules</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="build-aug.html">Build</a></div></div><div class=MEntry><div class=MFile><a href="inifile-aug.html">IniFile</a></div></div><div class=MEntry><div class=MFile><a href="rx-aug.html">Rx</a></div></div><div class=MEntry><div class=MFile><a href="sep-aug.html">Sep</a></div></div><div class=MEntry><div class=MFile><a href="util-aug.html">Util</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Tests and Examples</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="tests/test_access-aug.html">Test_Access</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_approx-aug.html">Test_Approx</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_aliases-aug.html">Test_Aliases</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_reprepro_uploaders-aug.html">Test_Reprepro_Uploaders</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_inifile-aug.html">Test_IniFile</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_keepalived-aug.html">Test_Keepalived</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_login_defs-aug.html">Test_login_defs</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_xml-aug.html">Test_Xml</a></div></div><div class=MEntry><div class=MFile><a href="tests/test_fai_diskconfig-aug.html">Test_FAI_DiskConfig</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../index/AugeasLenses.html">Lenses</a></div></div><div class=MEntry><div class=MIndex><a href="../index/AugeasModules.html">Modules</a></div></div><div class=MEntry><div class=MIndex><a href="../index/AugeasVariables.html">Variables</a></div></div><div class=MEntry><div class=MIndex><a href="../index/AugeasTests.html">Tests</a></div></div><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="AugeasLenses">Augeas Lenses</option><option value="AugeasModules">Augeas Modules</option><option value="AugeasTests">Augeas Tests</option><option value="AugeasVariables">Augeas Variables</option><option value="Files">Files</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([2], 6);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let empty      = Util.empty</td></tr></table></blockquote></div></div><div class=CToolTip id="tt2"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let eol        = Util.eol</td></tr></table></blockquote></div></div><div class=CToolTip id="tt3"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let sep_tab    = del /([ \t]+|[ \t]*\\\\\n[ \t]*)/ &quot;\t&quot;
</td></tr></table></blockquote></div></div><div class=CToolTip id="tt4"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let sep_tab_opt = del /([ \t]*|[ \t]*\\\\\n[ \t]*)/ &quot;&quot;
</td></tr></table></blockquote></div></div><div class=CToolTip id="tt5"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let comment =
	  [ label &quot;#comment&quot; . del /#[ \t]*/ &quot;# &quot;
	      . store /([^ \t\n+!-].*[^ \t\n]|[^ \t\n+!-])/ . eol ]
</td></tr></table></blockquote>Map comments into &ldquo;#comment&rdquo; nodes Can&rsquo;t use Util.comment as #+ and #!&nbsp; </div></div><div class=CToolTip id="tt6"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let comma      = sep_tab_opt . Util.del_str &quot;,&quot; . sep_tab_opt</td></tr></table></blockquote>Deletes a comma and default to it</div></div><div class=CToolTip id="tt7"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let colon      = sep_tab_opt . Util.del_str &quot;:&quot; . sep_tab_opt</td></tr></table></blockquote>Deletes a colon and default to it</div></div><div class=CToolTip id="tt8"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let semicolon  = sep_tab_opt . Util.del_str &quot;;&quot; . sep_tab_opt</td></tr></table></blockquote>Deletes a semicolon and default to it</div></div><div class=CToolTip id="tt9"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let at         = Util.del_str &quot;@&quot;</td></tr></table></blockquote>Deletes a at and default to it</div></div><div class=CToolTip id="tt10"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let dot        = Util.del_str &quot;.&quot;</td></tr></table></blockquote>Deletes a dot and default to it</div></div><div class=CToolTip id="tt11"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let pipe       = Util.del_str &quot;|&quot;</td></tr></table></blockquote>Deletes a pipe and default to it</div></div><div class=CToolTip id="tt12"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let plus       = Util.del_str &quot;+&quot;</td></tr></table></blockquote>Deletes a plus and default to it</div></div><div class=CToolTip id="tt13"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let bang       = Util.del_str &quot;!&quot;
</td></tr></table></blockquote>Deletes a bang and default to it</div></div><div class=CToolTip id="tt14"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let opt_hash   = del /#?/ &quot;&quot;</td></tr></table></blockquote>deletes an optional # sign</div></div><div class=CToolTip id="tt15"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let opt_plus   = del /\+?/ &quot;&quot;
</td></tr></table></blockquote>deletes an optional + sign</div></div><div class=CToolTip id="tt16"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let word      = /[A-Za-z0-9][A-Za-z0-9_.-]*/
</td></tr></table></blockquote>our version can&rsquo;t start with [_.-] because it would mess up the grammar</div></div><div class=CToolTip id="tt17"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let comparison = /(!|[&lt;=&gt;]+|![&lt;=&gt;]+)/
</td></tr></table></blockquote>a comparison is an optional ! </div></div><div class=CToolTip id="tt18"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let token      = /([a-z0-9]+|\*)/
</td></tr></table></blockquote>alphanum or &ldquo;*&rdquo;</div></div><div class=CToolTip id="tt19"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let file_r     = /\/[^ \t\n]+/
</td></tr></table></blockquote>a file begins with a / and get almost anything else after</div></div><div class=CToolTip id="tt20"><div class=CAugeasVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let loghost_r = /[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*/
</td></tr></table></blockquote>Matches a hostname, that is labels speparated by dots, labels can&rsquo;t start or end with a &ldquo;-&rdquo;. </div></div><div class=CToolTip id="tt21"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let label_opt_list (l:string) (r:lens) (s:lens) = Build.opt_list [ label l . r ] s
</td></tr></table></blockquote>Uses Build.opt_list to generate a list of labels</div></div><div class=CToolTip id="tt22"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let label_opt_list_or (l:string) (r:lens) (s:lens) (or:string) =
	  ( label_opt_list l r s | [ label l . store or ] )

</td></tr></table></blockquote>Either label_opt_list matches something or it emits a single label with the &ldquo;or&rdquo; string.</div></div><div class=CToolTip id="tt23"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let facilities = label_opt_list &quot;facility&quot; (store token) comma
</td></tr></table></blockquote>a list of facilities, separated by commas</div></div><div class=CToolTip id="tt24"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let selector = facilities . dot .
                       [ label &quot;comparison&quot; . store comparison]? .
                       [ label &quot;level&quot; . store token ]
</td></tr></table></blockquote>a selector is a list of facilities, an optional comparison and a level</div></div><div class=CToolTip id="tt25"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let selectors = label_opt_list &quot;selector&quot; selector semicolon
</td></tr></table></blockquote>a list of selectors, separated by semicolons</div></div><div class=CToolTip id="tt26"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let file = [ Build.xchgs &quot;-&quot; &quot;no_sync&quot; ]? . [ label &quot;file&quot; . store file_r ]
</td></tr></table></blockquote>a file may start with a &ldquo;-&rdquo; meaning it does not gets sync&rsquo;ed everytime</div></div><div class=CToolTip id="tt27"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let loghost = at . [ label &quot;hostname&quot; . store loghost_r ] .
	    (colon . [ label &quot;port&quot; . store /[0-9]+/ ] )?
</td></tr></table></blockquote>a loghost is an @  sign followed by the hostname and a possible port</div></div><div class=CToolTip id="tt28"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let users = label_opt_list_or &quot;user&quot; (store word) comma &quot;*&quot;
</td></tr></table></blockquote>a list of users or a &ldquo;*&rdquo;</div></div><div class=CToolTip id="tt29"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let logprogram = pipe . [ label &quot;program&quot; . store /[^ \t\n][^\n]+[^ \t\n]/ ]
</td></tr></table></blockquote>a log program begins with a pipe</div></div><div class=CToolTip id="tt30"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let action = (file | loghost | users | logprogram)
</td></tr></table></blockquote>an action is either a file, a host, users, or a program</div></div><div class=CToolTip id="tt31"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let entry = [ label &quot;entry&quot; .
	    selectors . sep_tab .
	    [ label &quot;action&quot; . action ] . eol ]
</td></tr></table></blockquote>an entry contains selectors and an action</div></div><div class=CToolTip id="tt32"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let entries = (empty | comment | entry)*
</td></tr></table></blockquote>entries are either comments/empty lines or entries</div></div><div class=CToolTip id="tt33"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let programs = label_opt_list_or &quot;program&quot; (store word) comma &quot;*&quot;
</td></tr></table></blockquote>a list of programs</div></div><div class=CToolTip id="tt34"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let program = [ label &quot;program&quot; . opt_hash . bang .
	      ( opt_plus | [ Build.xchgs &quot;-&quot; &quot;reverse&quot; ] ) .
	      programs . eol .  entries ]
</td></tr></table></blockquote>a program begins with an optional hash, a bang, and an optional + or -</div></div><div class=CToolTip id="tt35"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let hostnames = label_opt_list_or &quot;hostname&quot; (store Rx.word) comma &quot;*&quot;
</td></tr></table></blockquote>a list of hostnames</div></div><div class=CToolTip id="tt36"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">	let hostname = [ label &quot;hostname&quot; . opt_hash .
	      ( plus | [ Build.xchgs &quot;-&quot; &quot;reverse&quot; ] ) .
	      hostnames . eol .  entries ]
</td></tr></table></blockquote>a program begins with an optional hash, and a + or -</div></div><div class=CToolTip id="tt37"><div class=CAugeasLens><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">        let lns = entries . ( program | hostname )*
</td></tr></table></blockquote>generic entries then programs or hostnames matching blocs</div></div><div class=CToolTip id="tt38"><div class=CAugeasVariable>all you need is /etc/syslog.conf</div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>