def main(args=None):
parsed_args = parser.parse_args(args=args)
logger.setLevel(parsed_args.log_level)
has_attrs = (getattr(parsed_args, "sort_by", None) and
getattr(parsed_args, "columns", None))
if has_attrs and parsed_args.sort_by not in parsed_args.columns:
parsed_args.columns.append(parsed_args.sort_by)
try:
result = parsed_args.entry_point(parsed_args)
except Exception as e:
if isinstance(e, NoRegionError):
msg = "The AWS CLI is not configured."
msg += " Please configure it using instructions at"
msg += " http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html"
exit(msg)
elif logger.level < logging.ERROR:
raise
else:
err_msg = traceback.format_exc()
try:
err_log_filename = os.path.join(config.user_config_dir, "error.log")
with open(err_log_filename, "ab") as fh:
print(datetime.datetime.now().isoformat(), file=fh)
print(err_msg, file=fh)
exit("{}: {}. See {} for error details.".format(e.__class__.__name__, e, err_log_filename))
except Exception:
print(err_msg, file=sys.stderr)
exit(os.EX_SOFTWARE)
if isinstance(result, SystemExit):
raise result
elif result is not None:
if isinstance(result, dict) and "ResponseMetadata" in result:
del result["ResponseMetadata"]
print(json.dumps(result, indent=2, default=lambda x: str(x)))
评论列表
文章目录