コード例 #1
0
ファイル: on_event.py プロジェクト: smurfix/HomEvenT
 def load(self):
     main_words.register_statement(OnEventHandler)
     OnEventHandler.register_statement(OnPrio)
     main_words.register_statement(OnSkip)
     OnEventHandler.register_statement(OnName)
     OnEventHandler.register_statement(OnDoc)
     register_condition(OnHandlers.exists)
コード例 #2
0
ファイル: timeslot.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(TimeslotHandler)
		main_words.register_statement(TimeslotUpdate)
		main_words.register_statement(TimeslotStart)
		main_words.register_statement(TimeslotStop)
		main_words.register_statement(VarTimeslotHandler)
		register_condition(RunningTimeslotCheck)
		register_condition(DuringTimeslotCheck)
コード例 #3
0
ファイル: pwm.py プロジェクト: smurfix/HomEvenT
	def load(self):
		main_words.register_statement(PWMHandler)
		main_words.register_statement(PWMUpdate)
		main_words.register_statement(PWMSet)
		main_words.register_statement(VarPWMHandler)
		register_condition(PWMs.exists)
		register_condition(OnPWMCheck)
コード例 #4
0
ファイル: net.py プロジェクト: smurfix/HomEvenT
	def load(self):
		main_words.register_statement(NETlisten)
		main_words.register_statement(NETconnect)
		main_words.register_statement(NETsend)
		register_condition(Nets.exists)
		register_condition(NetListens.exists)
		register_condition(NETconnected)
コード例 #5
0
ファイル: rrdc.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(RRDconnect)
		main_words.register_statement(RRDsetfile)
		main_words.register_statement(RRDset)
		register_condition(RRDconnected)
		register_condition(RRDchannels.exists)
		register_condition(RRDservers.exists)
		register_condition(RRDfiles.exists)
コード例 #6
0
ファイル: avg.py プロジェクト: smurfix/HomEvenT
	def load(self):
		mlen=0
		for v in globals().itervalues():
			m = getattr(v,"mode",None)
			if m is None: continue
			modes[m] = v
			if mlen < len(m): mlen = len(m)
		for v in modes.itervalues():
			AvgHandler.long_doc += v.mode+" "*(mlen-len(v.mode)+1)+v.doc+"\n"

		main_words.register_statement(AvgHandler)
		main_words.register_statement(AvgSet)
		main_words.register_statement(AvgReset)
		main_words.register_statement(VarAvgHandler)
		register_condition(Avgs.exists)
コード例 #7
0
ファイル: syslog.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(SyslogHandler)
コード例 #8
0
ファイル: wait.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(WaitHandler)
		main_words.register_statement(VarWaitHandler)
		register_condition(Waiters.exists)
コード例 #9
0
ファイル: tests.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(TestMonitor)
		register_input(FakeInput)
		register_output(FakeOutput)
コード例 #10
0
ファイル: fs20switch.py プロジェクト: smurfix/HomEvenT
 def load(self):
     main_words.register_statement(FS20switches)
     main_words.register_statement(FS20send)
     register_condition(SwitchGroups.exists)
     register_condition(Switches.exists)
コード例 #11
0
ファイル: __init__.py プロジェクト: pombreda/MoaT
			self.buf=""
	def flush(self):
		if self.buf:
			l = self.buf
			self.buf = ""
			self.log(None,l)

class ctxdump(Statement):
	name="dump context"
	doc="dump the variable context"
	def run(self,ctx,**k):
		event = self.params(ctx)
		print >>sys.stderr,"CTX:",Name(event)
		for s in ctx._report():
			print >>sys.stderr,"   :",s
main_words.register_statement(ctxdump)

ht = None
def run(name,input, interpreter=Interpreter, logger=None):
	global ht
	if logger is None:
		ht = run_logger(name,dot=False)
		logger = ht.log
	if isinstance(input,unicode):
		input = input.encode("utf-8")
	input = StringIO(input)

	def _main():
		global ht
		parse_ctx = Context(filename=name)
		#parse_ctx.logger=parse_logger
コード例 #12
0
ファイル: data.py プロジェクト: smurfix/HomEvenT
	def load(self):
		main_words.register_statement(List)
		main_words.register_statement(Del)
コード例 #13
0
ファイル: errors.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(TryStatement)
		main_words.register_statement(CatchStatement)
		main_words.register_statement(ReportStatement)
		main_words.register_statement(TriggerStatement)
コード例 #14
0
ファイル: ssh.py プロジェクト: smurfix/HomEvenT
	def load(self):
		main_words.register_statement(SSHlisten)
		main_words.register_statement(SSHauth)
		main_words.register_statement(SSHdir)
		register_condition(AuthKeys.exists)
コード例 #15
0
ファイル: daemon.py プロジェクト: smurfix/HomEvenT
from homevent.context import Context
from homevent.parser import parse
from homevent.run import process_failure
from homevent.twist import track_errors, fix_exception
from homevent.reactor import ShutdownHandler,mainloop,shut_down,\
	stop_mainloop
from homevent.logging import TRACE,DEBUG,INFO,WARN,ERROR,PANIC,\
	Logger,LogNames, log_level
from signal import signal,SIGINT,SIGHUP,SIGQUIT
import sys
import os
import gevent

from twisted.internet import reactor

main_words.register_statement(Load)
main_words.register_statement(LoadDir)
main_words.register_statement(ShutdownHandler)
main_words.register_statement(DoNothingHandler)
load_module("ifelse")

from optparse import OptionParser
parser = OptionParser(conflict_handler="resolve")
parser.add_option("-h","--help","-?", action="help",
	help="print this help text")
parser.add_option("-t", "--trace", dest="debuglevel", action="store",
	help="trace level (TRACE,DEBUG,INFO,WARN,ERROR,PANIC,NONE)", default="PANIC")
parser.add_option("-s", "--stack", dest="stack", action="store_true",
	help="HomEvenT errors are logged with Python stack traces")
parser.add_option("-p", "--pidfile", dest="pidfile", action="store",
	help="file to write our PID to")
コード例 #16
0
ファイル: onewire.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(OWFSconnect)
		main_words.register_statement(OWFSdisconnect)
		main_words.register_statement(OWFSdir)
		main_words.register_statement(OWFSscan)
		main_words.register_statement(OWFSset)
		main_words.register_statement(OWFSmonitor)
		register_input(OWFSinput)
		register_output(OWFSoutput)
		register_condition(OWFSconnected)
		register_condition(OWFSconnectedbus)
コード例 #17
0
ファイル: amqp.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(AMQPconn)
		main_words.register_statement(AMQPstart)
		main_words.register_statement(AMQPstop)
		main_words.register_statement(AMQPlog)
		main_words.register_statement(AMQPtell)
		main_words.register_statement(AMQPlisten)
		register_condition(AMQPclients.exists)
コード例 #18
0
ファイル: block.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(Block)
		main_words.register_statement(Async)
		main_words.register_statement(SkipThis)
コード例 #19
0
ファイル: monitor.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(MonitorMaker)
		main_words.register_statement(MonitorHandler)
		main_words.register_statement(MonitorUpdate)
		main_words.register_statement(MonitorSet)
		main_words.register_statement(MonitorStart)
		main_words.register_statement(MonitorStop)
		main_words.register_statement(VarMonitorHandler)
		register_condition(RunningMonitorCheck)
		register_condition(WaitingMonitorCheck)
コード例 #20
0
ファイル: rrd.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(RRDHandler)
		main_words.register_statement(RRDset)
		main_words.register_statement(VarRRDHandler)
		register_condition(RRDs.exists)
コード例 #21
0
ファイル: ifelse.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(IfStatement)
		main_words.register_statement(ElseStatement)
		main_words.register_statement(ElseIfStatement)
コード例 #22
0
ファイル: fs20avr.py プロジェクト: smurfix/HomEvenT
	def load(self):
		main_words.register_statement(AVRconnect)
		main_words.register_statement(AVRsend)
		register_condition(AVRs.exists)
		register_condition(AVRconnected)
コード例 #23
0
ファイル: fs20tx.py プロジェクト: smurfix/HomEvenT
	def load(self):
		PREFIX[PREFIX_TX] = tx_handler()
		main_words.register_statement(FS20tx)
		main_words.register_statement(FS20txVal)
		register_condition(TXs.exists)
コード例 #24
0
ファイル: trigger.py プロジェクト: smurfix/HomEvenT
	def load(self):
		main_words.register_statement(TriggerHandler)
コード例 #25
0
ファイル: fs20en.py プロジェクト: smurfix/HomEvenT
	def load(self):
		PREFIX[PREFIX_ENERGY] = en_handler()
		main_words.register_statement(FS20en)
		main_words.register_statement(FS20enVal)
		register_condition(ENs.exists)
コード例 #26
0
ファイル: mod_persist1.py プロジェクト: pombreda/MoaT
block:
	if last state two foo bar:
		log TRACE "Yes!"
	else:
		log TRACE "No‽ 6"
on whatever:
	var state x foo bar
	log TRACE We got $x
log DEBUG End1
trigger whatever :sync
log DEBUG End2
list state
log DEBUG End3
shutdown
log DEBUG End4
"""

main_words.register_statement(ShutdownHandler)
load_module("state")
load_module("block")
load_module("data")
load_module("on_event")
load_module("logging")
load_module("ifelse")
load_module("bool")
load_module("trigger")
load_module("errors")

run("persist1",input)

コード例 #27
0
ファイル: fs20em.py プロジェクト: pombreda/MoaT
	def load(self):
		PREFIX[PREFIX_EM] = em_handler()
		PREFIX[PREFIX_EM2] = em2_handler()
		main_words.register_statement(FS20em)
		main_words.register_statement(FS20emVal)
		register_condition(EMs.exists)
コード例 #28
0
ファイル: rpc.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(RPClisten)
		register_condition(RPCconns.exists)
		register_condition(RPCservers.exists)
コード例 #29
0
ファイル: file.py プロジェクト: pombreda/MoaT
	def load(self):
		main_words.register_statement(Include)
コード例 #30
0
ファイル: fs20tr.py プロジェクト: smurfix/HomEvenT
 def load(self):
     main_words.register_statement(FS20receive)
     main_words.register_statement(FS20delreceive)
     main_words.register_statement(FS20transmit)
     main_words.register_statement(FS20deltransmit)
     register_worker(FS20tr_shutdown)