def interactive_mode(): try: action_list = ("add", "rename", "delete", "enable", "disable", "search", "clear", "trigger") Utils.debug_print("SuperCron (interactive mode)") Utils.debug_print("") action = raw_input("Action [add/rename/delete/enable/disable/trigger/search/clear]: ") action = str(action.lower().strip()) if action not in action_list: Utils.debug_print("Error: action '{}' not recognized.".format(action)) sys.exit(1) args = Namespace() if action == "clear": Utils.debug_print("") SuperCron.clear_jobs(args) return if action == "rename": args.old_name = raw_input("Job old name: ") args.new_name = raw_input("Job new name: ") Utils.debug_print("") SuperCron.rename_job(args) return if action == "trigger": trigger_parts = [] args.name = raw_input("Enter name of triggered job: ") trigger_parts.append(raw_input("Action on the triggered job [on/off/toggle]: ")) trigger_parts.append(raw_input("Name of the triggering job: ")) trigger_parts.append(raw_input("Condition on the triggering job [enabled/disabled/toggled/added/deleted]: ")) args.trigger = ["{t[0]} if {t[1]} is {t[2]}".format(t=trigger_parts)] Utils.debug_print("") SuperCron.trigger_job(args) return args.name = raw_input("Job name: ") if action == "add": args.command = [raw_input("Command to be executed: ")] args.repetition = [raw_input("Repetition sentence: ")] Utils.debug_print("") SuperCron.add_job(args) elif action == "delete": Utils.debug_print("") SuperCron.delete_job(args) elif action == "enable": Utils.debug_print("") SuperCron.enable_job(args) elif action == "disable": Utils.debug_print("") SuperCron.disable_job(args) elif action == "search": Utils.debug_print("") SuperCron.search_job(args) except KeyboardInterrupt: Utils.debug_print("\nCancelled.")