12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/usr/bin/env python
- import argparse
- from core import ShellGui
- from core.MainController import MainController
- import signal
- import sys
- from core.SynapseLauncher import SynapseLauncher
- def signal_handler(signal, frame):
- print "\n"
- print('Ctrl+C pressed. Killing Jarvis')
- sys.exit(0)
- def main():
- """
- Entry point of jarvis program
- """
- # create arguments
- parser = argparse.ArgumentParser(description='JARVIS')
- parser.add_argument("action", help="[start|gui]")
- parser.add_argument("--run-synapse", help="SYNAPSE. Name of a synapse to load surrounded by quote")
- parser.add_argument("--brain-file", help="BRAIN_PATH_FILE")
- # parse arguments from script parameters
- args = parser.parse_args()
- print args
- if len(sys.argv[1:]) == 0:
- parser.print_usage()
- sys.exit(1)
- # by default, no brain file is set. Use the default one: brain.yml in the root path
- brain_file = None
- if args.action == "start":
- # check if user set a brain.yml file
- if args.brain_file:
- print "Brain file arg: %s" % args.brain_file
- brain_file = args.brain_file
- # user set a synapse to start
- if args.run_synapse is not None:
- print "Run synapse arg: %s" % args.run_synapse
- SynapseLauncher.start_synapse(args.run_synapse, brain_file=brain_file)
- if args.run_synapse is None:
- print "Starting JARVIS. Press Ctrl+C for stopping"
- # catch signal for killing on Ctrl+C pressed
- signal.signal(signal.SIGINT, signal_handler)
- # start the main controller
- main_controller = MainController(brain_file=brain_file)
- main_controller.start()
- if args.action == "gui":
- ShellGui()
- if __name__ == '__main__':
- main()
|