Browse Source

add action load events to the CLI

nico 8 years ago
parent
commit
be14c03dea
2 changed files with 23 additions and 8 deletions
  1. 1 0
      core/__init__.py
  2. 22 8
      jarvis.py

+ 1 - 0
core/__init__.py

@@ -6,3 +6,4 @@ from core.AudioPlayer import AudioPlayer
 from core.ShellGui import ShellGui
 from core.Cache import Cache
 from core.FileManager import FileManager
+from core.Utils import Utils

+ 22 - 8
jarvis.py

@@ -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()