aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/tools/create_manpage_completions.py
diff options
context:
space:
mode:
authorGravatar Marc Joliet <marcec@gmx.de>2013-09-25 14:36:42 +0200
committerGravatar Marc Joliet <marcec@gmx.de>2013-09-25 15:41:48 +0200
commitfc7c489ab68d1fbc399b11f3a03db10cd95704f8 (patch)
tree40861f3ef0467cea162a3d811c8ff5b5feb259e9 /share/tools/create_manpage_completions.py
parent4856567a2aaf55f98a8f2ab621b3767ca45d565d (diff)
Skip lzma/xz manpages if lzma module not available
Skip man pages compressed with lzma/xz if the lzma module is not available; also print a corresponding diagnostic message.
Diffstat (limited to 'share/tools/create_manpage_completions.py')
-rwxr-xr-xshare/tools/create_manpage_completions.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/share/tools/create_manpage_completions.py b/share/tools/create_manpage_completions.py
index e1b7ccaa..4b9ad88f 100755
--- a/share/tools/create_manpage_completions.py
+++ b/share/tools/create_manpage_completions.py
@@ -20,10 +20,14 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
import string, sys, re, os.path, bz2, gzip, traceback, getopt, errno, codecs
from deroff import Deroffer
+lzma_available = True
try:
- import backports.lzma as lzma
+ try:
+ import backports.lzma as lzma
+ except ImportError:
+ import lzma
except ImportError:
- import lzma
+ lzma_available = False
# Whether we're Python 3
IS_PY3 = sys.version_info[0] >= 3
@@ -727,6 +731,8 @@ def parse_manpage_at_path(manpage_path, output_directory):
manpage = fd.read()
if IS_PY3: manpage = manpage.decode('latin-1')
elif manpage_path.endswith('.xz') or manpage_path.endswith('.lzma'):
+ if not lzma_available:
+ return
fd = lzma.LZMAFile(str(manpage_path), 'r')
manpage = fd.read()
if IS_PY3: manpage = manpage.decode('latin-1')
@@ -829,6 +835,8 @@ def parse_and_output_man_pages(paths, output_directory, show_progress):
last_progress_string_length = 0
if show_progress and not WRITE_TO_STDOUT:
print("Parsing man pages and writing completions to {0}".format(output_directory))
+ if not lzma_available and not WRITE_TO_STDOUT:
+ print('"lzma" module not available, cannot parse man pages compressed with xz or lzma')
for manpage_path in paths:
index += 1