mirror of https://github.com/tLDP/python-tldp
rework the build sequence
adapt all of the methods to the new topological-sort driven technique
This commit is contained in:
parent
74bdfcd44f
commit
4e76494cce
|
@ -5,11 +5,13 @@ from __future__ import absolute_import, division, print_function
|
|||
|
||||
import os
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
import networkx as nx
|
||||
|
||||
from tldp.utils import which, execute
|
||||
from tldp.utils import which
|
||||
from tldp.utils import arg_isexecutable, isexecutable
|
||||
from tldp.doctypes.common import BaseDoctype, SignatureChecker
|
||||
from tldp.doctypes.common import BaseDoctype, SignatureChecker, depends
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Linuxdoc(BaseDoctype, SignatureChecker):
|
||||
|
@ -22,54 +24,56 @@ class Linuxdoc(BaseDoctype, SignatureChecker):
|
|||
'linuxdoc_htmldoc': isexecutable,
|
||||
}
|
||||
|
||||
graph = nx.DiGraph()
|
||||
|
||||
buildorder = ['buildall']
|
||||
buildscript = '''#! /bin/bash
|
||||
#
|
||||
# -- generate LDP outputs from DocBook XML 4.x
|
||||
|
||||
set -x
|
||||
set -e
|
||||
set -o pipefail
|
||||
def chdir_output(self):
|
||||
os.chdir(self.output.dirname)
|
||||
return True
|
||||
|
||||
cd "{output.dirname}"
|
||||
@depends(graph, chdir_output)
|
||||
def make_htmls(self):
|
||||
'''create a single page HTML output (with incorrect name)'''
|
||||
s = '"{config.linuxdoc_sgml2html}" --split=0 "{source.filename}"'
|
||||
return self.shellscript(s)
|
||||
|
||||
# -- implicitly creates {output.name_html}
|
||||
"{config.linuxdoc_sgml2html}" \\
|
||||
--split=0 \\
|
||||
"{source.filename}"
|
||||
@depends(graph, make_htmls)
|
||||
def make_name_htmls(self):
|
||||
'''correct the single page HTML output name'''
|
||||
s = 'mv -v --no-clobber -- "{output.name_html}" "{output.name_htmls}"'
|
||||
return self.shellscript(s)
|
||||
|
||||
# -- .... so, it must be rename to {output.name_htmls}
|
||||
mv \\
|
||||
--no-clobber \\
|
||||
--verbose \\
|
||||
-- "{output.name_html}" "{output.name_htmls}"
|
||||
@depends(graph, make_name_htmls)
|
||||
def make_name_txt(self):
|
||||
'''create text output (from single-page HTML)'''
|
||||
s = '''"{config.linuxdoc_html2text}" > "{output.name_txt}" \\
|
||||
-style pretty \\
|
||||
-nobs \\
|
||||
"{output.name_htmls}"'''
|
||||
return self.shellscript(s)
|
||||
|
||||
"{config.linuxdoc_html2text}" > "{output.name_txt}" \\
|
||||
-style pretty \\
|
||||
-nobs \\
|
||||
"{output.name_htmls}"
|
||||
@depends(graph, make_name_htmls)
|
||||
def make_name_pdf(self):
|
||||
s = '''"{config.linuxdoc_htmldoc}" \\
|
||||
--size universal \\
|
||||
-t pdf \\
|
||||
--firstpage p1 \\
|
||||
--outfile "{output.name_pdf}" \\
|
||||
"{output.name_htmls}"'''
|
||||
return self.shellscript(s)
|
||||
|
||||
"{config.linuxdoc_htmldoc}" \\
|
||||
--size universal \\
|
||||
-t pdf \\
|
||||
--firstpage p1 \\
|
||||
--outfile "{output.name_pdf}" \\
|
||||
"{output.name_htmls}"
|
||||
@depends(graph, make_name_htmls)
|
||||
def make_name_html(self):
|
||||
'''create final index.html symlink'''
|
||||
s = '"{config.linuxdoc_sgml2html}" "{source.filename}"'
|
||||
return self.shellscript(s)
|
||||
|
||||
# -- implicitly creates {output.name_html}
|
||||
"{config.linuxdoc_sgml2html}" \\
|
||||
"{source.filename}"
|
||||
|
||||
ln \
|
||||
--symbolic \
|
||||
--relative \
|
||||
--verbose \
|
||||
-- "{output.name_html}" "{output.name_indexhtml}"
|
||||
|
||||
# -- end of file'''
|
||||
|
||||
def buildall(self):
|
||||
return self.shellscript(self.buildscript)
|
||||
@depends(graph, make_name_html)
|
||||
def make_name_indexhtml(self):
|
||||
'''create final index.html symlink'''
|
||||
s = 'ln -svr -- "{output.name_html}" "{output.name_indexhtml}"'
|
||||
return self.shellscript(s)
|
||||
|
||||
@staticmethod
|
||||
def argparse(p):
|
||||
|
@ -83,7 +87,5 @@ ln \
|
|||
default=which('htmldoc'),
|
||||
help='full path to htmldoc [%(default)s]')
|
||||
|
||||
|
||||
|
||||
#
|
||||
# -- end of file
|
||||
|
|
Loading…
Reference in New Issue