import mploader
import sys

from const_commands import *

_imports = []
_parents = []
_version = 1

def Admin_shutdown(avatar, command, args):
  mudWorld.shutdown = True
  return True

def Admin_purgecache(avatar, command, args):
  delKeys = [key for key in sys.modules.keys() if key.startswith("const_")]
  for delKey in delKeys:
    del sys.modules[delKey]
  mudWorld.sourceDB.EmptyCache()
  mudWorld.objIndex = mploader.ReadIndexFile(mudWorld, mudWorld.worldProperties["ObjectIndexFile"])
#  for avatar in worldObj.avatars:
#  for pseudoModule in mudWorld.sourceDB.pseudoModules.values():
#    print object.__getattribute__(pseudoModule, "modDict")
#  print mudWorld.sourceDB.contextCache
  avatar.Send("Cache and object index reset.\r\n")
  return True
  
def Admin_backup(avatar, command, args):
  mudWorld.objDB.BackupDB(mudWorld.objectBackupPath)
  mudWorld.sourceDB.BackupDB(mudWorld.sourceBackupPath)
  avatar.Send("Done.\r\n")
  return True

exportCommands = [(1, "%shutdown", "", COMMANDMODE_WORD, False, Admin_shutdown, {}),
                  (1, "%purgecache", "", COMMANDMODE_WORD, False, Admin_purgecache, {}),
                  (1, "%backup", "", COMMANDMODE_WORD, False, Admin_backup, {})]