implement a save() for modules, use it in MegaHAL to sync brain to disk

This commit is contained in:
Brian S. Stephan 2011-01-06 00:28:50 -06:00
parent 5c0323fc26
commit 0878c8809d
3 changed files with 19 additions and 2 deletions

View File

@ -92,6 +92,13 @@ class Module(object):
self.server.remove_global_handler('pubmsg', self.on_pubmsg)
self.server.remove_global_handler('privmsg', self.on_privmsg)
def save(self):
"""
Save whatever the module may need to save. Sync files, etc.
Implement this if you need it.
"""
def shutdown(self):
"""
Do pre-deletion type cleanup.

View File

@ -143,7 +143,11 @@ class IrcAdmin(Module):
def sub_save_config(self, connection, event, nick, userhost, replypath, what, admin_unlocked):
with open('dr.botzo.cfg', 'w') as cfg:
self.config.write(cfg)
replystr = 'Saved config file.'
for module in self.modlist:
module.save()
replystr = 'Saved.'
return self.reply(connection, replypath, replystr)
def sub_change_nick(self, connection, event, nick, userhost, replypath, what, admin_unlocked):

View File

@ -37,9 +37,15 @@ class MegaHAL(Module):
mh_python.initbrain()
def save(self):
"""
Sync the megahal brain.
"""
mh_python.cleanup()
def shutdown(self):
"""
Close the megahal brain.
Sync the megahal brain.
"""
mh_python.cleanup()