From e879f2e638e2f0313f547a0f25e814b45e4bb831 Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 16 May 2016 09:29:53 -0700 Subject: [PATCH 1/6] adding --version to CLI config --- tldp/config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tldp/config.py b/tldp/config.py index 2428de9..212ba26 100644 --- a/tldp/config.py +++ b/tldp/config.py @@ -147,6 +147,11 @@ def collectconfiguration(tag, argv): action='store_true', default=False, help='show status types and classes [%(default)s]') + g.add_argument('--version', + '-V', + action='store_true', default=False, + help='print out the version number [%(default)s]') + # -- collect up the distributed configuration fragments # for cls in tldp.typeguesser.knowndoctypes: From 47b29302647dcd748d440fe0342957adea3105da Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 16 May 2016 09:30:18 -0700 Subject: [PATCH 2/6] add --version handling logic in driver.py --- tldp/driver.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tldp/driver.py b/tldp/driver.py index f60d25e..502f807 100644 --- a/tldp/driver.py +++ b/tldp/driver.py @@ -24,6 +24,7 @@ from tldp.config import collectconfiguration from tldp.utils import arg_isloglevel, arg_isdirectory from tldp.utils import swapdirs, sameFilesystem from tldp.doctypes.common import preamble, postamble +from tldp import VERSION # -- Don't freak out with IOError when our STDOUT, handled with # head, sed, awk, grep, etc; and, also deal with a user's ctrl-C @@ -52,6 +53,11 @@ ERR_UNKNOWNARGS = "Unknown arguments received: " ERR_EXTRAARGS = "Extra arguments received: " +def show_version(config, *args, **kwargs): + file = kwargs.get('file', sys.stdout) + print(VERSION, file=file) + return os.EX_OK + def show_doctypes(config, *args, **kwargs): if args: return ERR_EXTRAARGS + ' '.join(args) @@ -508,6 +514,9 @@ def collectWorkset(config, args): def handleArgs(config, args): + if config.version: + return show_version(config, *args) + if config.doctypes: return show_doctypes(config, *args) From a7fa31e35e919d678e8f684b6de97e322837d3cd Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 16 May 2016 09:30:30 -0700 Subject: [PATCH 3/6] add entry for --version to manpage --- docs/ldptool-man.rst | 19 ++++++++++++------- docs/ldptool.1 | 21 +++++++++++++-------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/docs/ldptool-man.rst b/docs/ldptool-man.rst index 094d0c0..f96e735 100644 --- a/docs/ldptool-man.rst +++ b/docs/ldptool-man.rst @@ -14,7 +14,8 @@ Description :program:`ldptool` creates chunked HTML, single-page HTML, PDF and plain text outputs for each source document it is passed as a *pathname*. See -`Source document discovery`_. +`Source document discovery`_. It will compare the source document and output +document and rebuild an output only if the content has changed. If it is not passed any arguments, `ldptool` will collect all of the directories specified with the --sourcedir option and scan through these @@ -47,6 +48,9 @@ Action options -h, --help show a help message and exit +-V, --version + print out the version number + -b, --build Build LDP documentation into the `--builddir` and exit. This is the default action if no other action is specified. @@ -166,14 +170,15 @@ span multiple files. Although more than half of the LDP document collection consists of single-file HOWTO contributions, there are a number of documents that are composed of dozens, even hundreds of files. In order to accommodate both the simple documents and these much more complex documents, LDP adopted a -simple (unoriginal) naming strategy to allow a single document to span +simple (though not unique) naming strategy to allow a single document to span multiple files:: - Each document is referred to by a stem, which is the filename without any - extension. A single file document is simple STEM.EXT. A document that - requires many files must be contained in a directory with the STEM name. - Therefore, the primary source document will always be called either STEM.EXT - or STEM/STEM.EXT. + Each document is referred to by a stem, which is the filename + without any extension. A single file document is simple + STEM.EXT. A document that requires many files must be contained + in a directory with the STEM name. Therefore, the primary + source document will always be called either STEM.EXT or + STEM/STEM.EXT. (If there is a STEM/STEM.xml and STEM/STEM.sgml in the same directory, that is an error, and `ldptool` will freak out and shoot pigeons.) diff --git a/docs/ldptool.1 b/docs/ldptool.1 index 5d031e3..e38a8be 100644 --- a/docs/ldptool.1 +++ b/docs/ldptool.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "LDPTOOL" "1" "2016-04-21" "1.9.2" "ldptool" +.TH "LDPTOOL" "1" "May 16, 2016" "1.9.2" "ldptool" .SH NAME ldptool \- DocBook, Linuxdoc and Asciidoc build/publishing tool. . @@ -37,7 +37,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .sp \fBldptool\fP creates chunked HTML, single\-page HTML, PDF and plain text outputs for each source document it is passed as a \fIpathname\fP\&. See -\fI\%Source document discovery\fP\&. +\fI\%Source document discovery\fP\&. It will compare the source document and output +document and rebuild an output only if the content has changed. .sp If it is not passed any arguments, \fIldptool\fP will collect all of the directories specified with the \-\-sourcedir option and scan through these @@ -81,6 +82,9 @@ generate configuration files that it can then take as input .B \-h\fP,\fB \-\-help show a help message and exit .TP +.B \-V\fP,\fB \-\-version +print out the version number +.TP .B \-b\fP,\fB \-\-build Build LDP documentation into the \fI\-\-builddir\fP and exit. This is the default action if no other action is specified. @@ -204,18 +208,19 @@ span multiple files. Although more than half of the LDP document collection consists of single\-file HOWTO contributions, there are a number of documents that are composed of dozens, even hundreds of files. In order to accommodate both the simple documents and these much more complex documents, LDP adopted a -simple (unoriginal) naming strategy to allow a single document to span +simple (though not unique) naming strategy to allow a single document to span multiple files: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C -Each document is referred to by a stem, which is the filename without any -extension. A single file document is simple STEM.EXT. A document that -requires many files must be contained in a directory with the STEM name. -Therefore, the primary source document will always be called either STEM.EXT -or STEM/STEM.EXT. +Each document is referred to by a stem, which is the filename +without any extension. A single file document is simple +STEM.EXT. A document that requires many files must be contained +in a directory with the STEM name. Therefore, the primary +source document will always be called either STEM.EXT or +STEM/STEM.EXT. .ft P .fi .UNINDENT From 9f5b7c2ded95a62c94ff59ffb8c0d81a82f91a7a Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 16 May 2016 09:37:46 -0700 Subject: [PATCH 4/6] use unicode literals here, too --- tldp/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tldp/__init__.py b/tldp/__init__.py index 53e5962..97d8bac 100644 --- a/tldp/__init__.py +++ b/tldp/__init__.py @@ -3,6 +3,7 @@ # Copyright (c) 2016 Linux Documentation Project from __future__ import absolute_import +from __future__ import unicode_literals import tldp.config import tldp.outputs From beb920dd58571bd483b3fda4bc0c888e4178731b Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 16 May 2016 09:38:09 -0700 Subject: [PATCH 5/6] add a test for the new --version CLI --- tests/test_driver.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/test_driver.py b/tests/test_driver.py index e047646..2554737 100644 --- a/tests/test_driver.py +++ b/tests/test_driver.py @@ -12,6 +12,7 @@ import uuid import errno import codecs import random +import unittest from tempfile import NamedTemporaryFile as ntf from argparse import Namespace @@ -20,6 +21,7 @@ from tldp.typeguesser import knowndoctypes from tldp.inventory import stypes, status_types from tldp.sources import SourceDocument from tldp.outputs import OutputDirectory +from tldp import VERSION # -- Test Data import example @@ -127,6 +129,22 @@ class TestDriverShowStatustypes(TestToolsFilesystem): self.assertEqual(exitcode, os.EX_OK) +class TestDriverShowVersion(unittest.TestCase): + + def test_show_version(self): + stdout = io.StringIO() + result = tldp.driver.show_version(Namespace(), file=stdout) + self.assertEqual(result, os.EX_OK) + stdout.seek(0) + data = stdout.read().strip() + for status in status_types: + self.assertEqual(VERSION, data) + + def test_run_statustypes(self): + exitcode = tldp.driver.run(['--version']) + self.assertEqual(exitcode, os.EX_OK) + + class TestDriverSummary(TestInventoryBase): def test_run_summary(self): From 7b756c7a1802aa5d4d1ff7d17a82bc49d7e01bbc Mon Sep 17 00:00:00 2001 From: "Martin A. Brown" Date: Mon, 16 May 2016 09:56:15 -0700 Subject: [PATCH 6/6] bumping version to tldp-0.7.14 --- contrib/tldp.spec | 6 +++--- debian/changelog | 8 +++++++- tldp/__init__.py | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/contrib/tldp.spec b/contrib/tldp.spec index a6eacbd..b1f85ac 100644 --- a/contrib/tldp.spec +++ b/contrib/tldp.spec @@ -1,8 +1,8 @@ %define sourcename tldp %define name python-tldp -%define version 0.7.13 -%define unmangled_version 0.7.13 -%define unmangled_version 0.7.13 +%define version 0.7.14 +%define unmangled_version 0.7.14 +%define unmangled_version 0.7.14 %define release 1 Summary: automatic publishing tool for DocBook, Linuxdoc and Asciidoc diff --git a/debian/changelog b/debian/changelog index bd02ee4..315c22f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +tldp (0.7.14-1) unstable; urgency=low + + * Add --version option. + + -- Martin A. Brown Mon, 16 May 2016 16:54:47 +0000 + tldp (0.7.13-1) unstable; urgency=low * Fix testsuite when run as root (Closes: #824201). @@ -8,4 +14,4 @@ tldp (0.7.12-1) unstable; urgency=low * Initial release (Closes: #822181) - -- Martin A. Brown Wed, 27 Apr 2016 17:09:56 +0000 \ No newline at end of file + -- Martin A. Brown Wed, 27 Apr 2016 17:09:56 +0000 diff --git a/tldp/__init__.py b/tldp/__init__.py index 97d8bac..fe5edd0 100644 --- a/tldp/__init__.py +++ b/tldp/__init__.py @@ -10,4 +10,4 @@ import tldp.outputs import tldp.sources import tldp.inventory -VERSION = "0.7.13" +VERSION = "0.7.14"