Skip to content

Commit

Permalink
Merge branch 'dev20231212'
Browse files Browse the repository at this point in the history
  • Loading branch information
bugen committed Dec 12, 2023
2 parents 9ffcd31 + 6b88e1b commit ff6ddd6
Showing 1 changed file with 37 additions and 7 deletions.
44 changes: 37 additions & 7 deletions pypipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import atexit
import importlib.util
import re
import shutil
import signal
import subprocess
import sys
Expand Down Expand Up @@ -294,16 +295,33 @@ def is_colored(args):
return sys.stdout.isatty()


def enable_pager(args):
if not sys.stdout.isatty():
def paging_enabled(args):
if args.output:
return False
if environ.get('PYPIPE_PAGER_ENABLED', 'true').lower() == 'false':
if not sys.stdout.isatty():
return False
pager = environ.get('PYPIPE_PAGER', 'less -R -F')
if args.paging is not None:

print(args.paging)
return args.paging
return environ.get('PYPIPE_PAGER_ENABLED', 'true').lower() == 'true'


def select_pager(args):
pager = environ.get('PYPIPE_PAGER') or environ.get('PAGER') or 'less'
if args.print:
pager = environ.get('PYPIPE_PRINT_PAGER', pager)
pager = environ.get('PYPIPE_PRINT_PAGER') or pager
elif args.view:
pager = environ.get('PYPIPE_VIEW_PAGER', pager)
pager = environ.get('PYPIPE_VIEW_PAGER') or pager
if pager.split()[0] == 'less':
pager = pager + ' ' + environ.get('PYPIPE_LESS_OPTS', ' -R -F')
return pager


def enable_pager(args):
pager = select_pager(args)
if shutil.which(pager.split()[0]) is None:
return False
proc = None
stdout_save = sys.stdout
stat = {"is_exiting": False}
Expand Down Expand Up @@ -858,6 +876,18 @@ def field_type(s):
'-t', '--convert',
action="store_true",
)
common_parser.add_argument(
'--paging',
dest="paging",
action="store_const",
const=True,
)
common_parser.add_argument(
'--no-paging',
dest="paging",
action="store_const",
const=False,
)

## LOOP OPTIONS
loop_parser = argparse.ArgumentParser(add_help=False)
Expand Down Expand Up @@ -1022,7 +1052,7 @@ def field_type(s):
args.no_wrapping = True

args.colored = is_colored(args)
if not args.output:
if paging_enabled(args):
enable_pager(args)

args.handler(args)
Expand Down

0 comments on commit ff6ddd6

Please sign in to comment.