#!/usr/bin/env python from __future__ import print_function import os.path as osp import re import shlex import subprocess import sys here = osp.dirname(osp.abspath(__file__)) cmd = "help2man labelme" man_expected = subprocess.check_output(shlex.split(cmd)).decode().splitlines() man_file = osp.realpath(osp.join(here, "../../../docs/man/labelme.1")) with open(man_file) as f: man_actual = f.read().splitlines() patterns_exclude = [ r"^\.TH .*", r"^.*/\.labelmerc\)$", r"^\.\\.*", ] PASS = 1 for line_expected, line_actual in zip(man_expected, man_actual): for pattern in patterns_exclude: if re.match(pattern, line_expected) or re.match(pattern, line_actual): break else: if line_expected != line_actual: print(repr("> {}".format(line_expected)), file=sys.stderr) print(repr("< {}".format(line_actual)), file=sys.stderr) PASS = 0 if not PASS: print( "Please run:\n\n\thelp2man labelme > {}\n".format(man_file), file=sys.stderr, ) assert PASS