|
@@ -38,9 +38,12 @@ def signal_handler(signal, frame):
|
|
|
ACTION_LIST = ["start", "gui", "install", "uninstall"]
|
|
|
|
|
|
|
|
|
-def main():
|
|
|
- """Entry point of Kalliope program."""
|
|
|
-
|
|
|
+def parse_args(args):
|
|
|
+ """
|
|
|
+ Parsing function
|
|
|
+ :param args: arguments passed from the command line
|
|
|
+ :return: return parser
|
|
|
+ """
|
|
|
# create arguments
|
|
|
parser = argparse.ArgumentParser(description='Kalliope')
|
|
|
parser.add_argument("action", help="[start|gui|install|uninstall]")
|
|
@@ -59,52 +62,58 @@ def main():
|
|
|
version='Kalliope ' + version_str)
|
|
|
|
|
|
# parse arguments from script parameters
|
|
|
- args = parser.parse_args()
|
|
|
+ return parser.parse_args(args)
|
|
|
|
|
|
- # require at least one parameter, the action
|
|
|
- if len(sys.argv[1:]) == 0:
|
|
|
- parser.print_usage()
|
|
|
+
|
|
|
+def main():
|
|
|
+ """Entry point of Kalliope program."""
|
|
|
+ # parse argument. the script name is removed
|
|
|
+ try:
|
|
|
+ parser = parse_args(sys.argv[1:])
|
|
|
+ except SystemExit:
|
|
|
sys.exit(1)
|
|
|
|
|
|
# check if we want debug
|
|
|
- configure_logging(debug=args.debug)
|
|
|
+ configure_logging(debug=parser.debug)
|
|
|
|
|
|
- logger.debug("kalliope args: %s" % args)
|
|
|
+ logger.debug("kalliope args: %s" % parser)
|
|
|
|
|
|
# by default, no brain file is set.
|
|
|
# Use the default one: brain.yml in the root path
|
|
|
brain_file = None
|
|
|
|
|
|
# check if user set a brain.yml file
|
|
|
- if args.brain_file:
|
|
|
- brain_file = args.brain_file
|
|
|
+ if parser.brain_file:
|
|
|
+ brain_file = parser.brain_file
|
|
|
|
|
|
# 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 parser.action not in ACTION_LIST:
|
|
|
+ Utils.print_warning("%s is not a recognised action\n" % parser.action)
|
|
|
+ sys.exit(1)
|
|
|
|
|
|
# install modules
|
|
|
- if args.action == "install":
|
|
|
- if not args.git_url:
|
|
|
+ if parser.action == "install":
|
|
|
+ if not parser.git_url:
|
|
|
Utils.print_danger("You must specify the git url")
|
|
|
+ sys.exit(1)
|
|
|
else:
|
|
|
parameters = {
|
|
|
- "git_url": args.git_url
|
|
|
+ "git_url": parser.git_url
|
|
|
}
|
|
|
res_manager = ResourcesManager(**parameters)
|
|
|
res_manager.install()
|
|
|
return
|
|
|
|
|
|
# uninstall modules
|
|
|
- if args.action == "uninstall":
|
|
|
- if not args.neuron_name and not args.stt_name and not args.tts_name and not args.trigger_name:
|
|
|
+ if parser.action == "uninstall":
|
|
|
+ if not parser.neuron_name and not parser.stt_name and not parser.tts_name and not parser.trigger_name:
|
|
|
Utils.print_danger("You must specify a module name with --neuron-name or --stt-name or --tts-name "
|
|
|
"or --trigger-name")
|
|
|
+ sys.exit(1)
|
|
|
else:
|
|
|
res_manager = ResourcesManager()
|
|
|
- res_manager.uninstall(neuron_name=args.neuron_name, stt_name=args.stt_name,
|
|
|
- tts_name=args.tts_name, trigger_name=args.trigger_name)
|
|
|
+ res_manager.uninstall(neuron_name=parser.neuron_name, stt_name=parser.stt_name,
|
|
|
+ tts_name=parser.tts_name, trigger_name=parser.trigger_name)
|
|
|
return
|
|
|
|
|
|
# load the brain once
|
|
@@ -116,20 +125,20 @@ def main():
|
|
|
settings_loader = SettingLoader()
|
|
|
settings = settings_loader.settings
|
|
|
|
|
|
- if args.action == "start":
|
|
|
+ if parser.action == "start":
|
|
|
|
|
|
# user set a synapse to start
|
|
|
- if args.run_synapse is not None:
|
|
|
- SynapseLauncher.start_synapse_by_name(args.run_synapse,
|
|
|
+ if parser.run_synapse is not None:
|
|
|
+ SynapseLauncher.start_synapse_by_name(parser.run_synapse,
|
|
|
brain=brain)
|
|
|
|
|
|
- if args.run_order is not None:
|
|
|
- SynapseLauncher.run_matching_synapse_from_order(args.run_order,
|
|
|
+ if parser.run_order is not None:
|
|
|
+ SynapseLauncher.run_matching_synapse_from_order(parser.run_order,
|
|
|
brain=brain,
|
|
|
settings=settings,
|
|
|
is_api_call=False)
|
|
|
|
|
|
- if (args.run_synapse is None) and (args.run_order is None):
|
|
|
+ if (parser.run_synapse is None) and (parser.run_order is None):
|
|
|
# first, load events in event manager
|
|
|
EventManager(brain.synapses)
|
|
|
Utils.print_success("Events loaded")
|
|
@@ -141,7 +150,7 @@ def main():
|
|
|
# start the state machine
|
|
|
MainController(brain=brain)
|
|
|
|
|
|
- if args.action == "gui":
|
|
|
+ if parser.action == "gui":
|
|
|
ShellGui(brain=brain)
|
|
|
|
|
|
|