]> git.llucax.com Git - personal/ion3-config.git/blob - psi_status_server.py
Add lm-sensors statusd monitor.
[personal/ion3-config.git] / psi_status_server.py
1 #!/usr/bin/env python2.5
2
3 import os
4 import re
5 import sys
6 import glob
7 import time
8
9 # MUST config
10 psi_profile = 'luca'
11
12 # MAY config
13 no_template = 'nada nuevo'
14 yes_template = '%(total)s mensaje%(pl)s nuevo%(pl)s (de %(jids)s)'
15 join_str = ' '
16 default_secs = 1
17
18 # Probably you don't want to touch this
19 psi_profile_dir = os.path.join(os.getenv('HOME'), '.psi', 'profiles', psi_profile)
20 events_files_glob = 'events-*.xml'
21 event_regex = re.compile(r'.*<jid>(.*)<\/jid>.*')
22
23 os.chdir(psi_profile_dir)
24
25 secs = default_secs
26
27 if len(sys.argv) > 1:
28         secs = int(sys.argv[1])
29
30 while True:
31         events = []
32         for f in glob.glob(events_files_glob):
33                 l = event_regex.findall(file(f).read())
34                 if l:
35                         events.extend(l)
36         if events:
37                 print yes_template % dict(
38                         total = len(events),
39                         pl    = 's' if len(events) > 1 else '',
40                         jids  = join_str.join(frozenset(events))
41                 )
42         else:
43                 print no_template
44         sys.stdout.flush()
45         time.sleep(secs)
46