def __init__(self, registrar): super(Schedule, self).__init__(registrar) self.settings = ConfigParser.SafeConfigParser() self.settings.read(utils.get_plugin_settings_paths(__name__)) if not self.settings.has_option("Settings", "queue_file"): self.settings.set("Settings", "queue_file", autoplatform.get_existing_file("schedule.queue")) else: if not os.access(self.settings.get("Settings", "queue_file"), os.W_OK): self.settings.set("Settings", "queue_file", None) self.queue = PersistentPriorityQueue( storagefile=self.settings.get("Settings", "queue_file")) if (not self.settings.has_option("Settings", "queue_file") or self.settings.get("Settings", "queue_file") is None): logger.log( "Scheduler could not find an existing queue file and " "no write access to create a new one. Any scheduled tasks " "will disappear once server is stopped.") self.event = threading.Event() thread = threading.Thread(target=self._executionthread) thread.setDaemon(True) thread.start() self.registrar.register_service( "schedule", self.execute, grammar={ "at": ["at"], "in": ["in"], "command": [], }, usage= ("USAGE: schedule WHAT [at WHEN] | [in WHEN]\n" "Schedules a command to be run at a specific time, repeating if\n" "necessary."), namespace=__name__)