Browse Source

pipe helpscreens to pager

The MMGen Project 2 years ago
parent
commit
b57e7a74f2
2 changed files with 16 additions and 9 deletions
  1. 10 6
      mmgen/opts.py
  2. 6 3
      mmgen/share/Opts.py

+ 10 - 6
mmgen/opts.py

@@ -62,11 +62,15 @@ def print_help(po,opts_data,opt_filter):
 			opts_data['text']['long_options'] = d
 			opts_data['text']['long_options'] = d
 		remove_unneeded_long_opts()
 		remove_unneeded_long_opts()
 
 
-	mmgen.share.Opts.print_help( # exits
-		proto,
-		po,
-		opts_data,
-		opt_filter )
+	from .util import do_pager
+	do_pager(
+		mmgen.share.Opts.make_help(
+			proto,
+			po,
+			opts_data,
+			opt_filter ))
+
+	sys.exit(0)
 
 
 def fmt_opt(o):
 def fmt_opt(o):
 	return '--' + o.replace('_','-')
 	return '--' + o.replace('_','-')
@@ -387,7 +391,7 @@ def init(
 	if getattr(opt,'help',None) or getattr(opt,'longhelp',None):
 	if getattr(opt,'help',None) or getattr(opt,'longhelp',None):
 		print_help(po,opts_data,opt_filter) # exits
 		print_help(po,opts_data,opt_filter) # exits
 
 
-	del mmgen.share.Opts.print_help
+	del mmgen.share.Opts.make_help
 	del mmgen.share.Opts.process_uopts
 	del mmgen.share.Opts.process_uopts
 	del mmgen.share.Opts.parse_opts
 	del mmgen.share.Opts.parse_opts
 
 

+ 6 - 3
mmgen/share/Opts.py

@@ -45,7 +45,11 @@ def usage(opts_data):
 		data      = opts_data['text'].get('usage2') or opts_data['text']['usage'] ))
 		data      = opts_data['text'].get('usage2') or opts_data['text']['usage'] ))
 	sys.exit(1)
 	sys.exit(1)
 
 
-def print_help(proto,po,opts_data,opt_filter):
+def print_help(*args):
+	print(make_help(*args))
+	sys.exit(0)
+
+def make_help(proto,po,opts_data,opt_filter):
 
 
 	def parse_lines(text):
 	def parse_lines(text):
 		filtered = False
 		filtered = False
@@ -96,8 +100,7 @@ def print_help(proto,po,opts_data,opt_filter):
 			for line in notes_text.splitlines():
 			for line in notes_text.splitlines():
 				yield line
 				yield line
 
 
-	print(nl.join(gen_text()))
-	sys.exit(0)
+	return nl.join(gen_text()) + '\n'
 
 
 def process_uopts(opts_data,short_opts,long_opts):
 def process_uopts(opts_data,short_opts,long_opts):