[Nut-upsdev] Embedding man pages in driver source code

Charles Lepple clepple at gmail.com
Mon Sep 7 13:54:02 UTC 2009

On Mon, Sep 7, 2009 at 4:09 AM, Arnaud Quette<aquette.dev at gmail.com> wrote:
> 2009/9/4 Charles Lepple <clepple at gmail.com>
>> On Thu, Sep 3, 2009 at 12:37 PM, Arnaud Quette<aquette.dev at gmail.com>
>> wrote:
>> >
>> > 2009/9/2 Charles Lepple <clepple at gmail.com>
>> >>
>> >> With the AsciiDoc conversion underway, I am wondering if we should
>> >> keep the AsciiDoc for the driver man pages in a specially-formatted
>> >> comment in the driver (taking a cue from the comments specifying USB
>> >> information).
>> >>
>> >> I have been doing something similar with the tripplite_usb driver for
>> >> a while - it contains Perl-style POD (Plain Old Documentation) in a C
>> >> comment, and the man page can be mechanically generated from that.
>> >>
>> >> This way, the documentation is closer to the actual driver source
>> >> code, and if someone changes a driver, they only need to send a single
>> >> patch.
>> >
>> > well, I have a mixed feeling about that.
>> > IMO, having the doc and the code is a good thing.
>> > but in practice, looking at tripplite_usb shows that the header is kinda
>> > bloated.
>> Bear in mind that much of each driver man page is boilerplate text, so
>> that could be reduced a bit with AsciiDoc macros. I also included
>> snippets of the protocol left over from the serial tripplite driver,
>> which contributes to the comment bloat.
> well, there might also be some consolidation with information from
> upsdrv_info and the vartable (can be obtained through driver "-help" call).
> don't know if that can be considered though.

Could you provide an example of how you would use that for the man page?

>> > moreover, it doesn't guarantee that the one who patch the code will
>> > remember
>> > to modify the inline doc (vs modifying an external one like the
>> > manpage).
>> > finally, having a single patch for 1 or 2 files doesn't make much
>> > difference.
>> >
>> >> We probably don't need to do this for the client/server binaries like
>> >> upsc and upsmon, but it's a possibility.
>> >>
>> >> Thoughts?
>> >
>> > while I clearly see the advantage of moving manpages to AsciiDoc (allow
>> > to
>> > generate html... output), I still don't much see the one of embedding it
>> > with the code.
>> >
>> > perhaps you, as the one who has practiced it, can shed my light.
>> > I'd also like to hear from Arjen.
>> Well, it was just a thought. My primary motivation with the
>> tripplite_usb man page was to not have to write in NROFF directly, and
>> the fact that POD has well-defined start and end markers was a happy
>> coincidence. We would have to reinvent a little of that for the
>> AsciiDoc stuff.
> as said above, part of the extraction process, we may want to consolidate
> info using some calls to the drivers to obtain authors, params, ...
> a perl or python scrip in tools can do the job.
> can you propose the foundation (how to include the text in the driver so
> that it can be extracted, consolidation with the existing data, ...) and
> possibly an example with skel?

I will think about it, but I should probably start converting some of
the man pages first, so that I have a better idea of what can be
consolidated. We will need the nroff source converted at some point,
whether or not it ends up in separate files or embedded in the source

- Charles Lepple

More information about the Nut-upsdev mailing list