mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
More robust parallel use of sphinx-build2
This commit is contained in:
parent
d1c4eeb92a
commit
81460e6cfc
@ -20,13 +20,15 @@ j, d, a = os.path.join, os.path.dirname, os.path.abspath
|
|||||||
BASE = d(a(__file__))
|
BASE = d(a(__file__))
|
||||||
|
|
||||||
|
|
||||||
def sphinx_build(language, base, builder='html', bdir='html', t=None, quiet=True):
|
def sphinx_build(language, base, builder='html', bdir='html', t=None, quiet=True, very_quiet=False):
|
||||||
destdir = j(base, bdir)
|
destdir = j(base, bdir)
|
||||||
if not os.path.exists(destdir):
|
if not os.path.exists(destdir):
|
||||||
os.makedirs(destdir)
|
os.makedirs(destdir)
|
||||||
ans = [SPHINX_BUILD, '-D', ('language=' + language), '-b', builder]
|
ans = [SPHINX_BUILD, '-D', ('language=' + language), '-b', builder]
|
||||||
if quiet:
|
if quiet:
|
||||||
ans.append('-q')
|
ans.append('-q')
|
||||||
|
if very_quiet:
|
||||||
|
ans.append('-Q')
|
||||||
if builder == 'html':
|
if builder == 'html':
|
||||||
ans += ['-w', j(destdir, 'sphinx-build-warnings.txt')]
|
ans += ['-w', j(destdir, 'sphinx-build-warnings.txt')]
|
||||||
if t:
|
if t:
|
||||||
@ -78,7 +80,7 @@ def build_pot(base):
|
|||||||
|
|
||||||
def build_man_pages(language, base):
|
def build_man_pages(language, base):
|
||||||
os.environ[b'CALIBRE_BUILD_MAN_PAGES'] = b'1'
|
os.environ[b'CALIBRE_BUILD_MAN_PAGES'] = b'1'
|
||||||
sphinx_build(language, base, builder='man', bdir=language)
|
sphinx_build(language, base, builder='man', bdir=language, very_quiet=True)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
@ -99,6 +101,7 @@ if __name__ == '__main__':
|
|||||||
p.add_argument('language', help='The language to build for')
|
p.add_argument('language', help='The language to build for')
|
||||||
p.add_argument('base', help='The destination directory')
|
p.add_argument('base', help='The destination directory')
|
||||||
p.add_argument('--man-pages', default=False, action='store_true', help='Build man pages')
|
p.add_argument('--man-pages', default=False, action='store_true', help='Build man pages')
|
||||||
|
p.add_argument('--quiet', default=False, action='store_true', help='Suppress warnings')
|
||||||
args = p.parse_args()
|
args = p.parse_args()
|
||||||
language, base = args.language, args.base
|
language, base = args.language, args.base
|
||||||
if language == 'gettext':
|
if language == 'gettext':
|
||||||
@ -108,5 +111,5 @@ if __name__ == '__main__':
|
|||||||
build_man_pages(language, base)
|
build_man_pages(language, base)
|
||||||
else:
|
else:
|
||||||
os.environ['CALIBRE_OVERRIDE_LANG'] = language
|
os.environ['CALIBRE_OVERRIDE_LANG'] = language
|
||||||
build_manual(language, base)
|
build_manual(language, base, very_quiet=args.quiet)
|
||||||
print ('Manual for', language, 'built in', j(base, 'html'))
|
print ('Manual for', language, 'built in', j(base, 'html'))
|
||||||
|
@ -212,7 +212,8 @@ class Manual(Command):
|
|||||||
'--', language, self.j(tdir, language)
|
'--', language, self.j(tdir, language)
|
||||||
], '\n\n**************** Building translations for: %s' % language))
|
], '\n\n**************** Building translations for: %s' % language))
|
||||||
self.info('Building manual for %d languages' % len(jobs))
|
self.info('Building manual for %d languages' % len(jobs))
|
||||||
if not parallel_build(jobs, self.info):
|
subprocess.check_call(jobs[0][0])
|
||||||
|
if not parallel_build(jobs[1:], self.info):
|
||||||
raise SystemExit(1)
|
raise SystemExit(1)
|
||||||
cwd = os.getcwdu()
|
cwd = os.getcwdu()
|
||||||
try:
|
try:
|
||||||
@ -303,7 +304,8 @@ class ManPages(Command):
|
|||||||
['calibre-debug', self.j(base, 'build.py'), '--', '--man-pages', l, dest],
|
['calibre-debug', self.j(base, 'build.py'), '--', '--man-pages', l, dest],
|
||||||
'\n\n**************** Building translations for: %s' % l)
|
'\n\n**************** Building translations for: %s' % l)
|
||||||
)
|
)
|
||||||
if not parallel_build(jobs, self.info, verbose=False):
|
subprocess.check_call(jobs[0][0])
|
||||||
|
if not parallel_build(jobs[1:], self.info, verbose=False):
|
||||||
raise SystemExit(1)
|
raise SystemExit(1)
|
||||||
cwd = os.getcwdu()
|
cwd = os.getcwdu()
|
||||||
os.chdir(dest)
|
os.chdir(dest)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user