#479 - Refactoring SkillContainer

- Shuting down skill on stop process
pull/446/merge
Augusto Monteiro 2017-01-27 22:20:10 -03:00
parent c7bfaa5760
commit 8db3ac2b82
1 changed files with 22 additions and 8 deletions

View File

@ -28,7 +28,7 @@ from mycroft.util.log import getLogger
__author__ = 'seanfitz' __author__ = 'seanfitz'
logger = getLogger("SkillContainer") LOG = getLogger("SkillContainer")
class SkillContainer(object): class SkillContainer(object):
@ -73,23 +73,37 @@ class SkillContainer(object):
port=params.port, port=params.port,
ssl=params.use_ssl) ssl=params.use_ssl)
def try_load_skill(self): def load_skill(self):
if self.enable_intent_skill: if self.enable_intent_skill:
intent_skill = create_intent_skill() intent_skill = create_intent_skill()
intent_skill.bind(self.ws) intent_skill.bind(self.ws)
intent_skill.initialize() intent_skill.initialize()
skill_descriptor = create_skill_descriptor(self.dir) skill_descriptor = create_skill_descriptor(self.dir)
load_skill(skill_descriptor, self.ws) self.skill = load_skill(skill_descriptor, self.ws)
def run(self): def run(self):
self.ws.on('message', logger.debug) try:
self.ws.on('open', self.try_load_skill) self.ws.on('message', LOG.debug)
self.ws.on('error', logger.error) self.ws.on('open', self.load_skill)
self.ws.on('error', LOG.error)
self.ws.run_forever() self.ws.run_forever()
except Exception as e:
LOG.error("Error: {0}".format(e))
self.stop()
def stop(self):
if self.skill:
self.skill.shutdown()
def main(): def main():
SkillContainer(sys.argv[1:]).run() container = SkillContainer(sys.argv[1:])
try:
container.run()
except KeyboardInterrupt:
container.stop()
finally:
sys.exit()
if __name__ == "__main__": if __name__ == "__main__":