tsyesika/p

IOError Broken pipe when inbox piped to a pager; should die more gracefully

Closed this issue · 0 comments

Try this:

$ p inbox | less

Hit 'q' to exit less (assuming you have more than one page of inbox).

You get this:

  Traceback (most recent call last):
    File "/path/to/your-p/bin/p", line 7, in <module>
      execfile(__file__)
    File "/path/to/your-p/p", line 859, in <module>
      cli()
    File "/path/to/your-p/src/click/click/core.py", line 451, in __call__
      return self.main(*args, **kwargs)
    File "/path/to/your-p/src/click/click/core.py", line 437, in main
      self.invoke(ctx)
    File "/path/to/your-p/src/click/click/core.py", line 681, in invoke
      return self.invoke_subcommand(ctx, cmd, cmd_name, ctx.args[1:])
    File "/path/to/your-p/src/click/click/core.py", line 690, in invoke_subcommand
      return cmd.invoke(cmd_ctx)
    File "/path/to/your-p/src/click/click/core.py", line 591, in invoke
      ctx.invoke(self.callback, **ctx.params)
    File "/path/to/your-p/src/click/click/core.py", line 293, in invoke
      return callback(*args, **kwargs)
    File "/path/to/your-p/src/click/click/decorators.py", line 64, in new_func
      return ctx.invoke(f, obj, *args[1:], **kwargs)
    File "/path/to/your-p/src/click/click/core.py", line 293, in invoke
      return callback(*args, **kwargs)
    File "/path/to/your-p/p", line 605, in p_inbox
      p._display_object(comment, indent=4)
    File "/path/to/your-p/p", line 173, in _display_object
      self.output.log(" "*indent + meta)
    File "/path/to/your-p/p", line 52, in log
      click.echo(message, file=self.stdout, nl=nl)
    File "/path/to/your-p/src/click/click/utils.py", line 261, in echo
      file.flush()
  IOError: [Errno 32] Broken pipe

It should probably catch that error and die more gracefully.