1
0
mirror of https://github.com/httpie/cli.git synced 2026-06-20 11:32:56 +02:00

Merge pull request #300 from msabramo/print_info_about_request_on_error

Print info about request on error
This commit is contained in:
Jakub Roztočil
2015-03-25 22:21:18 +01:00
3 changed files with 61 additions and 3 deletions
+12 -3
View File
@@ -67,7 +67,7 @@ def decode_args(args, stdin_encoding):
]
def main(args=sys.argv[1:], env=Environment()):
def main(args=sys.argv[1:], env=Environment(), error=None):
"""Run the main program and write the output to ``env.stdout``.
Return exit status code.
@@ -81,11 +81,14 @@ def main(args=sys.argv[1:], env=Environment()):
if env.config.default_options:
args = env.config.default_options + args
def error(msg, *args, **kwargs):
def _error(msg, *args, **kwargs):
msg = msg % args
level = kwargs.get('level', 'error')
env.stderr.write('\nhttp: %s: %s\n' % (level, msg))
if error is None:
error = _error
debug = '--debug' in args
traceback = debug or '--traceback' in args
exit_status = ExitStatus.OK
@@ -183,7 +186,13 @@ def main(args=sys.argv[1:], env=Environment()):
# Network errors vs. bugs, etc.
if traceback:
raise
error('%s: %s', type(e).__name__, str(e))
msg = str(e)
if hasattr(e, 'request'):
request = e.request
if hasattr(request, 'url'):
msg += ' while doing %s request to URL: %s' % (
request.method, request.url)
error('%s: %s', type(e).__name__, msg)
exit_status = ExitStatus.ERROR
finally: