[PATCH] pwclient: honor PAGER for view

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Tue Mar 3 02:18:34 AEDT 2015


Use the PAGER of the environment to view patches

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
---
 apps/patchwork/bin/pwclient | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/apps/patchwork/bin/pwclient b/apps/patchwork/bin/pwclient
index 2a80981..e6ee3c5 100755
--- a/apps/patchwork/bin/pwclient
+++ b/apps/patchwork/bin/pwclient
@@ -665,10 +665,25 @@ def main():
         action_states(rpc)
 
     elif action == 'view':
-        for patch_id in non_empty(h, patch_ids):
-            s = rpc.patch_get_mbox(patch_id)
-            if len(s) > 0:
-                print unicode(s).encode("utf-8")
+        pager = os.environ.get('PAGER')
+        if pager:
+            pager = subprocess.Popen(
+                pager.split(), stdin=subprocess.PIPE
+            )
+        if pager:
+            i = list()
+            for patch_id in non_empty(h, patch_ids):
+                s = rpc.patch_get_mbox(patch_id)
+                if len(s) > 0:
+                    i.append(unicode(s).encode("utf-8"))
+            if len(i) > 0:
+                pager.communicate(input="\n".join(i))
+            pager.stdin.close()
+        else:
+            for patch_id in non_empty(h, patch_ids):
+                s = rpc.patch_get_mbox(patch_id)
+                if len(s) > 0:
+                    print unicode(s).encode("utf-8")
 
     elif action == 'info':
         for patch_id in non_empty(h, patch_ids):
-- 
2.1.4



More information about the Patchwork mailing list