Use --version to see if less can be executed

(less) 2> /dev/null would fail if stdin is /dev/null.
Sinceless --version do not read anything from stdin,
it is perfect for seeing if the software exist or not.

Also replace the whole os system detection by directly
using subprocess ( as we use it elsewhere, we already
depend on it ).
This commit is contained in:
Michael Scherer 2014-12-14 18:09:42 +01:00
parent f7ac012301
commit caefc20f16

View file

@ -71,7 +71,7 @@ def pager(text):
pager_print(text)
else:
pager_pipe(text, os.environ['PAGER'])
elif hasattr(os, 'system') and os.system('(less) 2> /dev/null') == 0:
elif subprocess.call('(less --version) 2> /dev/null', shell = True) == 0:
pager_pipe(text, 'less')
else:
pager_print(text)