def main(args, file=sys.stdout): #pylint: disable=redefined-builtin _logging.configure_logging(args) if len(args) > 0 and args[0] == '--version': show_version_info_exit(file) azure_folder = os.path.expanduser('~/.azure') if not os.path.exists(azure_folder): os.makedirs(azure_folder) ACCOUNT.load(os.path.join(azure_folder, 'azureProfile.json')) CONFIG.load(os.path.join(azure_folder, 'az.json')) SESSION.load(os.path.join(azure_folder, 'az.sess'), max_age=3600) config = Configuration(args) APPLICATION.initialize(config) try: cmd_result = APPLICATION.execute(args) # Commands can return a dictionary/list of results # If they do, we print the results. if cmd_result and cmd_result.result: from azure.cli.core._output import OutputProducer formatter = OutputProducer.get_formatter(APPLICATION.configuration.output_format) OutputProducer(formatter=formatter, file=file).out(cmd_result) except Exception as ex: # pylint: disable=broad-except from azure.cli.core.telemetry import log_telemetry log_telemetry('Error', log_type='trace') error_code = handle_exception(ex) return error_code
def main(args, file=sys.stdout): #pylint: disable=redefined-builtin _logging.configure_logging(args) if len(args) > 0 and args[0] == '--version': show_version_info_exit(file) azure_folder = os.path.expanduser('~/.azure') if not os.path.exists(azure_folder): os.makedirs(azure_folder) ACCOUNT.load(os.path.join(azure_folder, 'azureProfile.json')) CONFIG.load(os.path.join(azure_folder, 'az.json')) SESSION.load(os.path.join(azure_folder, 'az.sess'), max_age=3600) config = Configuration(args) APPLICATION.initialize(config) try: cmd_result = APPLICATION.execute(args) # Commands can return a dictionary/list of results # If they do, we print the results. if cmd_result and cmd_result.result: formatter = OutputProducer.get_formatter( APPLICATION.configuration.output_format) OutputProducer(formatter=formatter, file=file).out(cmd_result) except Exception as ex: # pylint: disable=broad-except log_telemetry('Error', log_type='trace') error_code = handle_exception(ex) return error_code
def _special_cases(self, text, cmd, outside): break_flag = False continue_flag = False if text and text.split()[0].lower() == 'az': telemetry.track_ssg('az', text) cmd = ' '.join(text.split()[1:]) if self.default_command: cmd = self.default_command + " " + cmd if cmd.strip() == "quit" or cmd.strip() == "exit": break_flag = True elif text.strip( ) == "clear": # clears the history, but only when you restart outside = True cmd = 'echo -n "" >' +\ os.path.join( SHELL_CONFIG_DIR(), SHELL_CONFIGURATION.get_history()) if '--version' in text: try: continue_flag = True show_version_info_exit(sys.stdout) except SystemExit: pass if text: if text[0] == SELECT_SYMBOL['outside']: cmd = text[1:] outside = True if cmd.split()[0] == 'cd': handle_cd(parse_quotes(cmd)) continue_flag = True telemetry.track_ssg('outside', cmd) elif text[0] == SELECT_SYMBOL['exit_code']: print(self.last_exit) continue_flag = True telemetry.track_ssg('exit code', cmd) elif text[0] == SELECT_SYMBOL['query']: # query previous output continue_flag = self.handle_jmespath_query(text, continue_flag) elif "|" in text or ">" in text: # anything I don't parse, send off outside = True cmd = "az " + cmd elif SELECT_SYMBOL['example'] in text: cmd, continue_flag = self.handle_example(cmd, continue_flag) telemetry.track_ssg('tutorial', text) continue_flag, cmd = self.handle_scoping_input(continue_flag, cmd, text) return break_flag, continue_flag, outside, cmd
def main(args, file=sys.stdout): # pylint: disable=redefined-builtin azlogging.configure_logging(args) logger.debug('Command arguments %s', args) if len(args) > 0 and args[0] == '--version': show_version_info_exit(file) azure_folder = get_config_dir() if not os.path.exists(azure_folder): os.makedirs(azure_folder) ACCOUNT.load(os.path.join(azure_folder, 'azureProfile.json')) CONFIG.load(os.path.join(azure_folder, 'az.json')) SESSION.load(os.path.join(azure_folder, 'az.sess'), max_age=3600) config = Configuration(args) APPLICATION.initialize(config) try: cmd_result = APPLICATION.execute(args) # Commands can return a dictionary/list of results # If they do, we print the results. if cmd_result and cmd_result.result is not None: from azure.cli.core._output import OutputProducer formatter = OutputProducer.get_formatter(APPLICATION.configuration.output_format) OutputProducer(formatter=formatter, file=file).out(cmd_result) except Exception as ex: # pylint: disable=broad-except # TODO: include additional details of the exception in telemetry telemetry.set_exception(ex, 'outer-exception', 'Unexpected exception caught during application execution.') telemetry.set_failure() error_code = handle_exception(ex) return error_code