/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 “#comment” nodes Can’t use Util.comment as #+ and #! </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’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 “*”</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’t start or end with a “-”. </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 “or” 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 “-” meaning it does not gets sync’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 “*”</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. An online source being : <a href="http://www.freebsd.org/cgi/man.cgi?query=syslog.conf&sektion=5" class=LURL target=_top>http://www.freebsd.org<wbr>/cgi<wbr>/man.cgi?query=syslog.conf<wbr>&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. 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]*)/ "\t"
</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]*)/ ""
</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 "#comment" . del /#[ \t]*/ "# "
. store /([^ \t\n+!-].*[^ \t\n]|[^ \t\n+!-])/ . eol ]
</td></tr></table></blockquote><p>Map comments into “#comment” nodes Can’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 "," . 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 ":" . 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 ";" . 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 "@"</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 "."</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 "|"</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 "+"</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 "!"
</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 /#?/ ""</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 /\+?/ ""
</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’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 = /(!|[<=>]+|![<=>]+)/
</td></tr></table></blockquote><p>a comparison is an optional ! with optionaly some of [<=>]</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 “*”</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’t start or end with a “-”. maybe a bit too complicated for what it’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 “or” 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 "facility" (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 "comparison" . store comparison]? .
[ label "level" . 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 "selector" 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 "-" "no_sync" ]? . [ label "file" . store file_r ]
</td></tr></table></blockquote><p>a file may start with a “-” meaning it does not gets sync’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 "hostname" . store loghost_r ] .
(colon . [ label "port" . 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 "user" (store word) comma "*"
</td></tr></table></blockquote><p>a list of users or a “*”</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 "program" . 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 "entry" .
selectors . sep_tab .
[ label "action" . 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 "program" (store word) comma "*"
</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 "program" . opt_hash . bang .
( opt_plus | [ Build.xchgs "-" "reverse" ] ) .
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 "hostname" (store Rx.word) comma "*"
</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 "hostname" . opt_hash .
( plus | [ Build.xchgs "-" "reverse" ] ) .
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]*)/ "\t"
</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]*)/ ""
</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 "#comment" . del /#[ \t]*/ "# "
. store /([^ \t\n+!-].*[^ \t\n]|[^ \t\n+!-])/ . eol ]
</td></tr></table></blockquote>Map comments into “#comment” nodes Can’t use Util.comment as #+ and #! </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 "," . 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 ":" . 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 ";" . 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 "@"</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 "."</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 "|"</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 "+"</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 "!"
</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 /#?/ ""</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 /\+?/ ""
</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’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 = /(!|[<=>]+|![<=>]+)/
</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 “*”</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’t start or end with a “-”. </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 “or” 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 "facility" (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 "comparison" . store comparison]? .
[ label "level" . 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 "selector" 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 "-" "no_sync" ]? . [ label "file" . store file_r ]
</td></tr></table></blockquote>a file may start with a “-” meaning it does not gets sync’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 "hostname" . store loghost_r ] .
(colon . [ label "port" . 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 "user" (store word) comma "*"
</td></tr></table></blockquote>a list of users or a “*”</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 "program" . 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 "entry" .
selectors . sep_tab .
[ label "action" . 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 "program" (store word) comma "*"
</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 "program" . opt_hash . bang .
( opt_plus | [ Build.xchgs "-" "reverse" ] ) .
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 "hostname" (store Rx.word) comma "*"
</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 "hostname" . opt_hash .
( plus | [ Build.xchgs "-" "reverse" ] ) .
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>
|