|
@@ -1,7 +1,10 @@
|
|
|
#!/usr/bin/env python
|
|
|
import argparse
|
|
|
+import logging
|
|
|
|
|
|
from core import ShellGui
|
|
|
+from core import Utils
|
|
|
+from core.CrontabManager import CrontabManager
|
|
|
from core.MainController import MainController
|
|
|
import signal
|
|
|
import sys
|
|
@@ -11,9 +14,11 @@ from core.SynapseLauncher import SynapseLauncher
|
|
|
|
|
|
def signal_handler(signal, frame):
|
|
|
print "\n"
|
|
|
- print('Ctrl+C pressed. Killing Jarvis')
|
|
|
+ Utils.print_info("Ctrl+C pressed. Killing Jarvis")
|
|
|
sys.exit(0)
|
|
|
|
|
|
+ACTION_LIST = ["start", "gui", "load-events"]
|
|
|
+
|
|
|
|
|
|
def main():
|
|
|
"""
|
|
@@ -21,13 +26,13 @@ def main():
|
|
|
"""
|
|
|
# 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")
|
|
|
+ parser.add_argument("action", help="[start|gui|load-events]")
|
|
|
+ parser.add_argument("--run-synapse", help="Name of a synapse to load surrounded by quote")
|
|
|
+ parser.add_argument("--brain-file", help="Full path of a brain file")
|
|
|
|
|
|
# parse arguments from script parameters
|
|
|
args = parser.parse_args()
|
|
|
- print args
|
|
|
+ logging.debug("jarvis args: %s" % args)
|
|
|
if len(sys.argv[1:]) == 0:
|
|
|
parser.print_usage()
|
|
|
sys.exit(1)
|
|
@@ -35,19 +40,23 @@ def main():
|
|
|
# by default, no brain file is set. Use the default one: brain.yml in the root path
|
|
|
brain_file = None
|
|
|
|
|
|
+ # check the user provide a valid action
|
|
|
+ if args.action not in ACTION_LIST:
|
|
|
+ Utils.print_warning("%s is not a recognised action\n" % args.action)
|
|
|
+ parser.print_help()
|
|
|
+
|
|
|
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"
|
|
|
+ Utils.print_success("Starting JARVIS")
|
|
|
+ Utils.print_info("Press Ctrl+C for stopping")
|
|
|
# catch signal for killing on Ctrl+C pressed
|
|
|
signal.signal(signal.SIGINT, signal_handler)
|
|
|
# start the main controller
|
|
@@ -57,5 +66,10 @@ def main():
|
|
|
if args.action == "gui":
|
|
|
ShellGui()
|
|
|
|
|
|
+ if args.action == "load-events":
|
|
|
+ crontab_manager = CrontabManager(brain_file=brain_file)
|
|
|
+ crontab_manager.load_events_in_crontab()
|
|
|
+ Utils.print_success("Event loaded in crontab")
|
|
|
+
|
|
|
if __name__ == '__main__':
|
|
|
main()
|