mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
fixed issues with utf-8 encoding in docs, moved pager to use display class instad of bare prints
This commit is contained in:
parent
3b75f3d26a
commit
92e2f54228
2 changed files with 9 additions and 10 deletions
|
@ -432,21 +432,20 @@ class CLI(object):
|
|||
return result
|
||||
|
||||
|
||||
@staticmethod
|
||||
def pager(text):
|
||||
def pager(self, text):
|
||||
''' find reasonable way to display text '''
|
||||
# this is a much simpler form of what is in pydoc.py
|
||||
if not sys.stdout.isatty():
|
||||
print(text)
|
||||
self.display.display(text)
|
||||
elif 'PAGER' in os.environ:
|
||||
if sys.platform == 'win32':
|
||||
print(text)
|
||||
self.display.display(text)
|
||||
else:
|
||||
CLI.pager_pipe(text, os.environ['PAGER'])
|
||||
self.pager_pipe(text, os.environ['PAGER'])
|
||||
elif subprocess.call('(less --version) 2> /dev/null', shell = True) == 0:
|
||||
CLI.pager_pipe(text, 'less')
|
||||
self.pager_pipe(text, 'less')
|
||||
else:
|
||||
print(text)
|
||||
self.display.display(text)
|
||||
|
||||
@staticmethod
|
||||
def pager_pipe(text, cmd):
|
||||
|
@ -455,7 +454,7 @@ class CLI(object):
|
|||
os.environ['LESS'] = CLI.LESS_OPTS
|
||||
try:
|
||||
cmd = subprocess.Popen(cmd, shell=True, stdin=subprocess.PIPE, stdout=sys.stdout)
|
||||
cmd.communicate(input=text)
|
||||
cmd.communicate(input=text.encode(sys.stdout.encoding))
|
||||
except IOError:
|
||||
pass
|
||||
except KeyboardInterrupt:
|
||||
|
|
|
@ -73,7 +73,7 @@ class DocCLI(CLI):
|
|||
for path in paths:
|
||||
self.find_modules(path)
|
||||
|
||||
CLI.pager(self.get_module_list_text())
|
||||
self.pager(self.get_module_list_text())
|
||||
return 0
|
||||
|
||||
if len(self.args) == 0:
|
||||
|
@ -125,7 +125,7 @@ class DocCLI(CLI):
|
|||
self.display.vvv(traceback.print_exc())
|
||||
raise AnsibleError("module %s missing documentation (or could not parse documentation): %s\n" % (module, str(e)))
|
||||
|
||||
CLI.pager(text)
|
||||
self.pager(text)
|
||||
return 0
|
||||
|
||||
def find_modules(self, path):
|
||||
|
|
Loading…
Reference in a new issue