#!/usr/bin/env python3 import re import common from shell_helpers import LF import os import subprocess class Main(common.LkmcCliFunction): def __init__(self): super().__init__( defaults = { 'show_time': False, }, description='''\ https://github.com/cirosantilli/linux-kernel-module-cheat#build-the-documentation ''', ) def timed_main(self): asciidoctor_dir = os.path.join(self.env['root_dir'], 'asciidoctor') exit_status = self.sh.run_cmd( [ 'asciidoctor', LF, '--failure-level', 'info', LF, '--require', os.path.join(asciidoctor_dir, 'link-target-up.rb'), LF, '--out-file', self.env['readme_out'], LF, '--trace', LF, '--verbose', LF, self.env['readme'], LF, ], out_file=self.env['build_doc_log'], ) external_link_re = re.compile('^https?://') for link in subprocess.check_output([ os.path.join(asciidoctor_dir, 'extract-link-targets'), self.env['readme'] ]).decode().splitlines(): if not external_link_re.match(link): if not os.path.lexists(link): print('error: broken link: ' + link) exit_status = 1 return exit_status if __name__ == '__main__': Main().cli()