SkoolOS/bgservice.bgservice.html
2020-06-16 22:35:52 -04:00

187 lines
14 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module bgservice.bgservice</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="bgservice.html"><font color="#ffffff">bgservice</font></a>.bgservice</strong></big></big></font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/nkenschaft/Sysadmin/skoolos/bgservice/bgservice.py">/home/nkenschaft/Sysadmin/skoolos/bgservice/bgservice.py</a></font></td></tr></table>
<p><tt>A&nbsp;simple&nbsp;background&nbsp;service&nbsp;to&nbsp;log&nbsp;events&nbsp;in&nbsp;a&nbsp;directory,<br>
check&nbsp;for&nbsp;git&nbsp;commands&nbsp;in&nbsp;bash/zsh&nbsp;history,<br>
and&nbsp;check&nbsp;for&nbsp;non-whitelisted&nbsp;files&nbsp;in&nbsp;the&nbsp;watched&nbsp;directory.</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="bgservice.checker.html">bgservice.checker</a><br>
<a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="pyinotify.html">pyinotify</a><br>
<a href="sys.html">sys</a><br>
</td><td width="25%" valign=top><a href="time.html">time</a><br>
</td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="pyinotify.html#ProcessEvent">pyinotify.ProcessEvent</a>(<a href="pyinotify.html#_ProcessEvent">pyinotify._ProcessEvent</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="bgservice.bgservice.html#EventHandler">EventHandler</a>
</font></dt></dl>
</dd>
</dl>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="EventHandler">class <strong>EventHandler</strong></a>(<a href="pyinotify.html#ProcessEvent">pyinotify.ProcessEvent</a>)</font></td></tr>
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt><a href="#EventHandler">EventHandler</a>(pevent=None,&nbsp;**kargs)<br>
&nbsp;<br>
Custom&nbsp;event&nbsp;handler&nbsp;for&nbsp;watching&nbsp;a&nbsp;SkoolOS&nbsp;work&nbsp;directory<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="bgservice.bgservice.html#EventHandler">EventHandler</a></dd>
<dd><a href="pyinotify.html#ProcessEvent">pyinotify.ProcessEvent</a></dd>
<dd><a href="pyinotify.html#_ProcessEvent">pyinotify._ProcessEvent</a></dd>
<dd><a href="builtins.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="EventHandler-process_IN_CLOSE_WRITE"><strong>process_IN_CLOSE_WRITE</strong></a>(self, event)</dt><dd><tt>Generates&nbsp;an&nbsp;output&nbsp;to&nbsp;record&nbsp;for&nbsp;IN_CLOSE_WRITE&nbsp;events<br>
param&nbsp;event:&nbsp;event&nbsp;automatically&nbsp;passed&nbsp;to&nbsp;function<br>
return:&nbsp;none</tt></dd></dl>
<dl><dt><a name="EventHandler-process_IN_CREATE"><strong>process_IN_CREATE</strong></a>(self, event)</dt><dd><tt>Generates&nbsp;an&nbsp;output&nbsp;to&nbsp;record&nbsp;for&nbsp;IN_CREATE&nbsp;events<br>
param&nbsp;event:&nbsp;event&nbsp;automatically&nbsp;passed&nbsp;to&nbsp;function<br>
return:&nbsp;none</tt></dd></dl>
<dl><dt><a name="EventHandler-process_IN_DELETE"><strong>process_IN_DELETE</strong></a>(self, event)</dt><dd><tt>Generates&nbsp;an&nbsp;output&nbsp;to&nbsp;record&nbsp;for&nbsp;IN_DELETE&nbsp;events<br>
param&nbsp;event:&nbsp;event&nbsp;automatically&nbsp;passed&nbsp;to&nbsp;function<br>
return:&nbsp;none</tt></dd></dl>
<dl><dt><a name="EventHandler-process_IN_MOVED_FROM"><strong>process_IN_MOVED_FROM</strong></a>(self, event)</dt><dd><tt>Generates&nbsp;an&nbsp;output&nbsp;to&nbsp;record&nbsp;for&nbsp;IN_MOVED_FROM&nbsp;events<br>
param&nbsp;event:&nbsp;event&nbsp;automatically&nbsp;passed&nbsp;to&nbsp;function<br>
return:&nbsp;none</tt></dd></dl>
<dl><dt><a name="EventHandler-process_IN_MOVED_TO"><strong>process_IN_MOVED_TO</strong></a>(self, event)</dt><dd><tt>Generates&nbsp;an&nbsp;output&nbsp;to&nbsp;record&nbsp;for&nbsp;IN_MOVED_TO&nbsp;events<br>
param&nbsp;event:&nbsp;event&nbsp;automatically&nbsp;passed&nbsp;to&nbsp;function<br>
return:&nbsp;none</tt></dd></dl>
<dl><dt><a name="EventHandler-process_IN_OPEN"><strong>process_IN_OPEN</strong></a>(self, event)</dt><dd><tt>Generates&nbsp;an&nbsp;output&nbsp;to&nbsp;record&nbsp;for&nbsp;IN_OPEN&nbsp;events<br>
param&nbsp;event:&nbsp;event&nbsp;automatically&nbsp;passed&nbsp;to&nbsp;function<br>
return:&nbsp;none</tt></dd></dl>
<hr>
Methods inherited from <a href="pyinotify.html#ProcessEvent">pyinotify.ProcessEvent</a>:<br>
<dl><dt><a name="EventHandler-__call__"><strong>__call__</strong></a>(self, event)</dt><dd><tt>To&nbsp;behave&nbsp;like&nbsp;a&nbsp;functor&nbsp;the&nbsp;object&nbsp;must&nbsp;be&nbsp;callable.<br>
This&nbsp;method&nbsp;is&nbsp;a&nbsp;dispatch&nbsp;method.&nbsp;Its&nbsp;lookup&nbsp;order&nbsp;is:<br>
&nbsp;&nbsp;1.&nbsp;process_MASKNAME&nbsp;method<br>
&nbsp;&nbsp;2.&nbsp;process_FAMILY_NAME&nbsp;method<br>
&nbsp;&nbsp;3.&nbsp;otherwise&nbsp;calls&nbsp;process_default<br>
&nbsp;<br>
@param&nbsp;event:&nbsp;Event&nbsp;to&nbsp;be&nbsp;processed.<br>
@type&nbsp;event:&nbsp;Event&nbsp;object<br>
@return:&nbsp;By&nbsp;convention&nbsp;when&nbsp;used&nbsp;from&nbsp;the&nbsp;<a href="pyinotify.html#ProcessEvent">ProcessEvent</a>&nbsp;class:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Returning&nbsp;False&nbsp;or&nbsp;None&nbsp;(default&nbsp;value)&nbsp;means&nbsp;keep&nbsp;on<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;executing&nbsp;next&nbsp;chained&nbsp;functors&nbsp;(see&nbsp;chain.py&nbsp;example).<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;Returning&nbsp;True&nbsp;instead&nbsp;means&nbsp;do&nbsp;not&nbsp;execute&nbsp;next<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processing&nbsp;functions.<br>
@rtype:&nbsp;bool<br>
@raise&nbsp;ProcessEventError:&nbsp;Event&nbsp;object&nbsp;undispatchable,<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unknown&nbsp;event.</tt></dd></dl>
<dl><dt><a name="EventHandler-__init__"><strong>__init__</strong></a>(self, pevent=None, **kargs)</dt><dd><tt>Enable&nbsp;chaining&nbsp;of&nbsp;<a href="pyinotify.html#ProcessEvent">ProcessEvent</a>&nbsp;instances.<br>
&nbsp;<br>
@param&nbsp;pevent:&nbsp;Optional&nbsp;callable&nbsp;object,&nbsp;will&nbsp;be&nbsp;called&nbsp;on&nbsp;event<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;processing&nbsp;(before&nbsp;self).<br>
@type&nbsp;pevent:&nbsp;callable<br>
@param&nbsp;kargs:&nbsp;This&nbsp;constructor&nbsp;is&nbsp;implemented&nbsp;as&nbsp;a&nbsp;template&nbsp;method<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delegating&nbsp;its&nbsp;optionals&nbsp;keyworded&nbsp;arguments&nbsp;to&nbsp;the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method&nbsp;<a href="#EventHandler-my_init">my_init</a>().<br>
@type&nbsp;kargs:&nbsp;dict</tt></dd></dl>
<dl><dt><a name="EventHandler-my_init"><strong>my_init</strong></a>(self, **kargs)</dt><dd><tt>This&nbsp;method&nbsp;is&nbsp;called&nbsp;from&nbsp;<a href="pyinotify.html#ProcessEvent">ProcessEvent</a>.<a href="#EventHandler-__init__">__init__</a>().&nbsp;This&nbsp;method&nbsp;is<br>
empty&nbsp;here&nbsp;and&nbsp;must&nbsp;be&nbsp;redefined&nbsp;to&nbsp;be&nbsp;useful.&nbsp;In&nbsp;effect,&nbsp;if&nbsp;you<br>
need&nbsp;to&nbsp;specifically&nbsp;initialize&nbsp;your&nbsp;subclass'&nbsp;instance&nbsp;then&nbsp;you<br>
just&nbsp;have&nbsp;to&nbsp;override&nbsp;this&nbsp;method&nbsp;in&nbsp;your&nbsp;subclass.&nbsp;Then&nbsp;all&nbsp;the<br>
keyworded&nbsp;arguments&nbsp;passed&nbsp;to&nbsp;<a href="pyinotify.html#ProcessEvent">ProcessEvent</a>.<a href="#EventHandler-__init__">__init__</a>()&nbsp;will&nbsp;be<br>
transmitted&nbsp;as&nbsp;parameters&nbsp;to&nbsp;this&nbsp;method.&nbsp;Beware&nbsp;you&nbsp;MUST&nbsp;pass<br>
keyword&nbsp;arguments&nbsp;though.<br>
&nbsp;<br>
@param&nbsp;kargs:&nbsp;optional&nbsp;delegated&nbsp;arguments&nbsp;from&nbsp;<a href="#EventHandler-__init__">__init__</a>().<br>
@type&nbsp;kargs:&nbsp;dict</tt></dd></dl>
<dl><dt><a name="EventHandler-nested_pevent"><strong>nested_pevent</strong></a>(self)</dt></dl>
<dl><dt><a name="EventHandler-process_IN_Q_OVERFLOW"><strong>process_IN_Q_OVERFLOW</strong></a>(self, event)</dt><dd><tt>By&nbsp;default&nbsp;this&nbsp;method&nbsp;only&nbsp;reports&nbsp;warning&nbsp;messages,&nbsp;you&nbsp;can&nbsp;overredide<br>
it&nbsp;by&nbsp;subclassing&nbsp;<a href="pyinotify.html#ProcessEvent">ProcessEvent</a>&nbsp;and&nbsp;implement&nbsp;your&nbsp;own<br>
process_IN_Q_OVERFLOW&nbsp;method.&nbsp;The&nbsp;actions&nbsp;you&nbsp;can&nbsp;take&nbsp;on&nbsp;receiving&nbsp;this<br>
event&nbsp;is&nbsp;either&nbsp;to&nbsp;update&nbsp;the&nbsp;variable&nbsp;max_queued_events&nbsp;in&nbsp;order&nbsp;to<br>
handle&nbsp;more&nbsp;simultaneous&nbsp;events&nbsp;or&nbsp;to&nbsp;modify&nbsp;your&nbsp;code&nbsp;in&nbsp;order&nbsp;to<br>
accomplish&nbsp;a&nbsp;better&nbsp;filtering&nbsp;diminishing&nbsp;the&nbsp;number&nbsp;of&nbsp;raised&nbsp;events.<br>
Because&nbsp;this&nbsp;method&nbsp;is&nbsp;defined,&nbsp;IN_Q_OVERFLOW&nbsp;will&nbsp;never&nbsp;get<br>
transmitted&nbsp;as&nbsp;arguments&nbsp;to&nbsp;process_default&nbsp;calls.<br>
&nbsp;<br>
@param&nbsp;event:&nbsp;IN_Q_OVERFLOW&nbsp;event.<br>
@type&nbsp;event:&nbsp;dict</tt></dd></dl>
<dl><dt><a name="EventHandler-process_default"><strong>process_default</strong></a>(self, event)</dt><dd><tt>Default&nbsp;processing&nbsp;event&nbsp;method.&nbsp;By&nbsp;default&nbsp;does&nbsp;nothing.&nbsp;Subclass<br>
<a href="pyinotify.html#ProcessEvent">ProcessEvent</a>&nbsp;and&nbsp;redefine&nbsp;this&nbsp;method&nbsp;in&nbsp;order&nbsp;to&nbsp;modify&nbsp;its&nbsp;behavior.<br>
&nbsp;<br>
@param&nbsp;event:&nbsp;Event&nbsp;to&nbsp;be&nbsp;processed.&nbsp;Can&nbsp;be&nbsp;of&nbsp;any&nbsp;type&nbsp;of&nbsp;events&nbsp;but<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IN_Q_OVERFLOW&nbsp;events&nbsp;(see&nbsp;method&nbsp;process_IN_Q_OVERFLOW).<br>
@type&nbsp;event:&nbsp;Event&nbsp;instance</tt></dd></dl>
<hr>
Data and other attributes inherited from <a href="pyinotify.html#ProcessEvent">pyinotify.ProcessEvent</a>:<br>
<dl><dt><strong>pevent</strong> = None</dl>
<hr>
Methods inherited from <a href="pyinotify.html#_ProcessEvent">pyinotify._ProcessEvent</a>:<br>
<dl><dt><a name="EventHandler-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Return&nbsp;repr(self).</tt></dd></dl>
<hr>
Data descriptors inherited from <a href="pyinotify.html#_ProcessEvent">pyinotify._ProcessEvent</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-stop_watching"><strong>stop_watching</strong></a>()</dt><dd><tt>Stops&nbsp;the&nbsp;watch&nbsp;started&nbsp;by&nbsp;<a href="#-watch_dir">watch_dir</a>()<br>
return:&nbsp;none</tt></dd></dl>
<dl><dt><a name="-watch_dir"><strong>watch_dir</strong></a>(watched_dir='/home/nkenschaft', log_dir='SkoolOS/logs')</dt><dd><tt>Watches&nbsp;the&nbsp;specified&nbsp;directory&nbsp;for&nbsp;changes&nbsp;and&nbsp;outputs&nbsp;it&nbsp;in<br>
human&nbsp;readable&nbsp;format&nbsp;to&nbsp;a&nbsp;log&nbsp;file&nbsp;in&nbsp;the&nbsp;specified&nbsp;log&nbsp;directory.<br>
param&nbsp;watched_dir:&nbsp;directory&nbsp;to&nbsp;watch&nbsp;for&nbsp;changes<br>
param&nbsp;log_dir:&nbsp;directory&nbsp;to&nbsp;store&nbsp;log&nbsp;files<br>
return:&nbsp;none</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>DIR</strong> = None<br>
<strong>NOTIFIER</strong> = None<br>
<strong>START_TIME</strong> = None<br>
<strong>STDOUT</strong> = &lt;_io.TextIOWrapper name='&lt;stdout&gt;' mode='w' encoding='utf-8'&gt;</td></tr></table>
</body></html>