Martin A. Brown
8792b4c83a
make individual assertions
2016-03-01 08:20:57 -08:00
Martin A. Brown
6e2041692e
skip orphaned documents passed into build()
2016-03-01 07:31:52 -08:00
Martin A. Brown
c4ee8366f9
reporting when skipping a dir/file in sourcedir
2016-03-01 07:31:19 -08:00
Martin A. Brown
388215186e
adding main() as entry point
2016-03-01 07:15:35 -08:00
Martin A. Brown
bb14a8cb51
allow file to be specified for summary
...
also allow the creation of an in-memory OutputDirectory object before build
2016-02-29 21:32:20 -08:00
Martin A. Brown
dfc9855991
logic overhaul; abstract inventory creation
...
each function was creating its own inventory; this is not necessary
also, if a user wants only to build a single document, it is not necessary to
scan the entire source and output directory (small, but perceptible speedup to
the end user)
better checking of the various different possible argument types, since an
argument can be a filename, a status_class or a stem
2016-02-29 20:33:33 -08:00
Martin A. Brown
16885508da
pep8/pyflakes
2016-02-29 20:33:14 -08:00
Martin A. Brown
363bba8a37
pep8/pyflakes
2016-02-29 20:32:36 -08:00
Martin A. Brown
56b1a027ca
access inventory by status class name
...
create method getByStatusClass() and add testing
2016-02-29 18:03:16 -08:00
Martin A. Brown
d807c02173
create and use general function arg_issourcedoc
...
a source document is defined as either a file with a known ending (e.g. .xml,
.sgml) or a directory name containing a file with the directory name plus a
known extension
create a small function (arg_issourcedoc), which takes a filename and returns
that filename if it is (possibly) a source document or, if it is a directory,
finds the main file in the directory which represents the main document
2016-02-29 17:59:49 -08:00
Martin A. Brown
17a60e367a
make the action --options a mutually exclusive group
2016-02-29 17:56:41 -08:00
Martin A. Brown
fa73f93080
messed up indentation
2016-02-29 11:37:13 -08:00
Martin A. Brown
ddb5424941
get 100% coverage on the utils.py module
2016-02-29 11:32:01 -08:00
Martin A. Brown
6cdf0b65c1
explicitly stringify values at "input"
...
user can pass in a dict(); os.environ always contains string values, though,
so make sure that the dict() looks like what would be returned from os.environ
2016-02-29 10:48:03 -08:00
Martin A. Brown
98dd5ecdf8
no config validation yet
...
(and, I should not have used such terms inline in code)
2016-02-27 11:29:05 -08:00
Martin A. Brown
36e92b83d9
perform the processor prebuild check first
...
it is smarter to perform the non-destructive check first, rather than blowing
away the output directory and then reporting that it is impossible to rebuild
the document output tree
2016-02-27 11:13:58 -08:00
Martin A. Brown
fe520cd583
add logging logic to driver.py
2016-02-27 10:52:35 -08:00
Martin A. Brown
5f11427f38
remove pipe from script
2016-02-27 10:46:18 -08:00
Martin A. Brown
55cc7d5775
improve visual grouping of --help output
...
use argparse's ArgumentGroups to separate the argparse options for each of the
processors
2016-02-27 09:45:32 -08:00
Martin A. Brown
eac92b5354
add the document stem to the __repr__
2016-02-26 23:18:50 -08:00
Martin A. Brown
066f319156
change wrapped function name to "timing" for log entry
2016-02-26 23:18:24 -08:00
Martin A. Brown
ee68a453d2
exit 1 and report extra args on CLI
2016-02-26 23:18:02 -08:00
Martin A. Brown
9137946a05
adding timing to a few methods
2016-02-26 23:02:00 -08:00
Martin A. Brown
e6833f3989
and comma-separated in --verbose mode, too
2016-02-26 22:22:00 -08:00
Martin A. Brown
57055e582d
better production of status list
2016-02-26 22:19:30 -08:00
Martin A. Brown
1c4f283482
handle the images and resources during publication
2016-02-26 22:18:02 -08:00
Martin A. Brown
de514fd41b
user can now specify file, stem or nothing for build
2016-02-26 19:07:05 -08:00
Martin A. Brown
39c4a13d88
repair logic for when there is no index.sgml
2016-02-26 19:04:51 -08:00
Martin A. Brown
f739e365c0
do not bother generating index.sgml unless desirable/necessary
2016-02-26 18:15:27 -08:00
Martin A. Brown
9ffdd1df5d
support SourceDocument as directory nam
...
allow the driver to use the new feature of sources.py and SourceDocument, so
user can refer to simply a directory as the document
2016-02-26 18:04:39 -08:00
Martin A. Brown
e7c85fb2ec
allow construction of SourceDocument with file or directory
2016-02-26 13:22:20 -08:00
Martin A. Brown
f40ff2f915
unused function
2016-02-26 12:21:04 -08:00
Martin A. Brown
f1bc2121a6
moving hook_build_{success,failure} to BaseDoctype
2016-02-26 12:08:05 -08:00
Martin A. Brown
80d692efba
massive simplification of generate() method
...
move hook_build_success() and hook_build_failure() into BaseDoctype;
subclasses can always override, if need be
2016-02-26 12:06:34 -08:00
Martin A. Brown
89d8f14231
pyflakes fix
2016-02-26 12:06:27 -08:00
Martin A. Brown
3a0bb65961
switch to the DAG model
2016-02-26 12:06:17 -08:00
Martin A. Brown
84477c0f45
move cleanup() method to BaseDoctype
2016-02-26 11:58:56 -08:00
Martin A. Brown
66f11e5f3b
move cleanup() method to BaseDoctype
2016-02-26 11:58:43 -08:00
Martin A. Brown
5602ab68dd
pep8 fixes
2016-02-26 11:56:28 -08:00
Martin A. Brown
ca43130a6d
spit out the contents of the STDERR, STDOUT and executed script if failure
2016-02-26 11:24:42 -08:00
Martin A. Brown
c5e14d6ccf
"all" is a good default for --list
2016-02-26 11:24:19 -08:00
Martin A. Brown
9d1f066085
better PDF generation logic; add cleanup()
...
try to make the PDF first with jw, but don't quit if that fails
fall back to PDF generation with dblatex and tell the user
cleanup any generated index.sgml (if we made it)
2016-02-26 11:22:00 -08:00
Martin A. Brown
06194feba8
build sequence resilience/terseness) improvements
...
it would be a problem if there's no self.required; don't protect against it
be clearer about which methods in which class are being called (debug)
do not fail with AssertionError if missing a tool, just skip to next doc
always call the processor AND output hook_build_{failure,success} methods
2016-02-26 11:19:30 -08:00
Martin A. Brown
62f96f3bcb
add a postamble, too (extra newlines, only)
2016-02-26 10:10:45 -08:00
Martin A. Brown
f112fc98d1
switch to the DAG model
2016-02-26 10:10:29 -08:00
Martin A. Brown
2b65730f25
adjusting logging verbosity
2016-02-26 01:07:09 -08:00
Martin A. Brown
4e76494cce
rework the build sequence
...
adapt all of the methods to the new topological-sort driven technique
2016-02-26 01:02:16 -08:00
Martin A. Brown
74bdfcd44f
improve logging a little bit
2016-02-26 01:00:43 -08:00
Martin A. Brown
85b2b15c3b
build a graph of method dependencies
...
to allow individual subclasses of BaseDoctype to be able to implement as many
methods as they want to create document outputs, the BaseDoctype now
implements a graph of method dependencies. The sequence of tasks is
determined by applying the @depends decorator to the methods in the
heavy-lifting classes which actually implement the document procsesing.
For example, the Linuxdoc class will probably have about 6 or 7 methods to
generate the outputs, whereas, the more complex DocbookSGML class will have at
least two or three more to handle the build-time index-generation (if
necessary for the document).
2016-02-26 00:30:37 -08:00
Martin A. Brown
2d052e443e
--skip option needs to have an empty list default
2016-02-26 00:30:05 -08:00
Martin A. Brown
65a80f1339
add __name__ to getLogger() calls
2016-02-25 12:29:55 -08:00
Martin A. Brown
bb6fef9635
implement skipping logic in build (driver.py)
2016-02-25 12:29:38 -08:00
Martin A. Brown
44fc44d15a
remove logging logic from utils
2016-02-25 12:29:12 -08:00
Martin A. Brown
595e610213
adding --skip feature
2016-02-25 12:28:41 -08:00
Martin A. Brown
859b7f893f
pull logger straight from logging; use abs imports
2016-02-25 11:39:18 -08:00
Martin A. Brown
e74197eb01
pull logger straight from logging; add BaseDoctype
...
rely directly on the logging module directly instead of through tldp.utils
add the BaseDoctype to all of the modules (even though not all are
implemented)
2016-02-25 11:37:14 -08:00
Martin A. Brown
b86f92f742
inspect/call the argparse method for each doctype
2016-02-25 10:38:38 -08:00
Martin A. Brown
81375b84c5
revert to name knowndoctypes (classes only)
...
no need to itemize knowndoctypemodules after moving the config_fragment
functions to the staticmethod argparse on each class
2016-02-25 10:37:45 -08:00
Martin A. Brown
7903d5f497
config_fragment becomes staticmethod in class
...
the config_fragment function becomes a part of each doctype class, allowing
better encapsulation of most/all document type handling logic
the config_fragment function becomes a staticmethod called argparse
2016-02-25 10:35:46 -08:00
Martin A. Brown
92a9042a74
add automatic detection of config_fragments
2016-02-25 09:58:11 -08:00
Martin A. Brown
eb4e3d8c38
inspect for classes and modules
2016-02-25 09:51:17 -08:00
Martin A. Brown
03881d20de
use case-insensitive sorting
2016-02-25 09:31:49 -08:00
Martin A. Brown
db28d83480
decrease logging yak; remove unused functions
2016-02-24 09:26:23 -08:00
Martin A. Brown
89cb766ad7
clean up the stray index.sgml left hanging around
2016-02-23 23:30:07 -08:00
Martin A. Brown
4c7e92ca17
a wee bit more logging and better emphasis on the word SUCCESS
2016-02-23 22:54:57 -08:00
Martin A. Brown
7db6bb842e
add an asterisk for log readers
2016-02-23 22:44:39 -08:00
Martin A. Brown
fc2cdf975d
switch all processors to generated shell scripts
2016-02-23 22:44:17 -08:00
Martin A. Brown
ce359dfa32
generic method shellscript() cannot test if job is done
2016-02-23 22:37:59 -08:00
Martin A. Brown
8630157046
adapt to generated shellscript model
2016-02-23 21:59:47 -08:00
Martin A. Brown
c6ebbf8a64
make a bit less noise in routine operation
2016-02-23 21:59:20 -08:00
Martin A. Brown
120d44ffa5
make a bit more noise when building and skipping
2016-02-23 21:58:56 -08:00
Martin A. Brown
ad2a1763ec
move method shellscript into BaseDoctype
...
and fix a few errors in the generated DocBook XML 4.x script
2016-02-23 21:58:03 -08:00
Martin A. Brown
f1343deb00
try out a shellscript writing technique instead
2016-02-23 21:17:30 -08:00
Martin A. Brown
7da0670d23
add just a bit more warning bells
2016-02-23 21:17:01 -08:00
Martin A. Brown
83b998cb51
trying to write and execute a shell script
2016-02-23 21:16:44 -08:00
Martin A. Brown
cf8c314981
--pubdir type checker should be an arg_isdirectory
2016-02-23 13:13:52 -08:00
Martin A. Brown
8c69e05f94
beefing up some testing for new functions
2016-02-23 13:10:10 -08:00
Martin A. Brown
2fef28a299
adjust the logging information
2016-02-23 12:25:54 -08:00
Martin A. Brown
6ad64ea0e0
add an arg_isfile
2016-02-23 12:18:46 -08:00
Martin A. Brown
d5524f09ee
move generic function into BaseDoctype
2016-02-23 12:18:33 -08:00
Martin A. Brown
80011bcf9d
move generic function into BaseDoctype
2016-02-23 12:18:17 -08:00
Martin A. Brown
3788c4d265
get rid of the paths in mabrown home dir
2016-02-23 12:16:17 -08:00
Martin A. Brown
53c91eebe6
rename the hooks so they start with hook_
2016-02-23 11:58:29 -08:00
Martin A. Brown
a415484b5a
separate operations by method and dependencies
...
use the generalized build sequence running supported by doctypes/common.py
2016-02-23 11:57:37 -08:00
Martin A. Brown
df75f051db
generalizing build sequence logic
...
ready for use in first doctype (linuxdoc)
2016-02-23 11:56:58 -08:00
Martin A. Brown
08df7acbe2
rework tracking of success vector
2016-02-23 11:08:04 -08:00
Martin A. Brown
1475cf7890
use arg_ checking functions; add build_precheck
...
rename platform_check to build_precheck
refer to arg_ checking functions from utils
ensure that just before each build we validate executables
avoid FD leakage by using with ... context for outf (stdout)
2016-02-23 11:05:28 -08:00
Martin A. Brown
11834a17cc
initial work on supporting build verb
2016-02-23 11:05:04 -08:00
Martin A. Brown
b4895a2e0b
use arg_ checking functions from utils.py
2016-02-23 11:04:43 -08:00
Martin A. Brown
58246eb6e7
add config.py to the tldp package
2016-02-23 11:04:20 -08:00
Martin A. Brown
6c4fd88944
adding arg_* handlers; fix FD leakage in execute
...
fix FD leakage in function execute: must close stdout and stderr if
execute opens them (process logging in per-document logdir)
add functions arg_isloglevel, arg_isdirectory and arg_isexecutable
2016-02-23 11:02:36 -08:00
Martin A. Brown
f9453185df
deleting unnecessary platform.py file
2016-02-23 09:44:12 -08:00
Martin A. Brown
51fabb65d7
change platform to config
2016-02-23 09:43:27 -08:00
Martin A. Brown
13bb8d3129
remove reference to platform
2016-02-23 09:43:06 -08:00
Martin A. Brown
3a0ee539fa
adding [%(default)s] to each argparse entry
2016-02-23 09:08:08 -08:00
Martin A. Brown
5508d1113b
repair detail() and status() generation functions
...
and pass args into all driver functions
2016-02-23 09:00:27 -08:00
Martin A. Brown
f567a0be13
add status_classes for user interaction
2016-02-23 08:59:56 -08:00
Martin A. Brown
04c10a6af9
refer to %(default)s; shorter lines
2016-02-23 08:59:37 -08:00
Martin A. Brown
7bb5e35aeb
add detail method to source and output documents
...
the detail method produces some output listing about the
document and will soon include more verbosity
2016-02-23 08:44:16 -08:00
Martin A. Brown
abb471c912
refer to status_classes and pep8 fix
2016-02-23 08:44:05 -08:00