From 5ca090668febbb984745f026a4ecd4e9d67d8592 Mon Sep 17 00:00:00 2001 From: Fabien Benureau Date: Fri, 18 Dec 2015 22:31:49 +0100 Subject: [PATCH] Handle IOError: [Errno 32] Broken pipe Will happen if piping through a pager like less, that closes stdout before everything has been printed. Related: #47 --- pubs/pubs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/pubs/pubs b/pubs/pubs index fa2eb8a..41520ff 100755 --- a/pubs/pubs +++ b/pubs/pubs @@ -1,5 +1,19 @@ #!/usr/bin/env python # -*- coding:utf-8 -*- +import sys + from pubs import pubs_cmd -pubs_cmd.execute() + +try: + pubs_cmd.execute() +except IOError: + # stdout or stderr has been closed, cleaning up + try: + sys.stdout.close() + except IOError: + pass + try: + sys.stderr.close() + except IOError: + pass