Overview of changes:
* Added command to list imported modules
Useful for introspection, eg. reporting versions of imported
modules.
* Worked around sfdoc problem with old /usr/bin/man
Turns out we can use man 1.x if we save file to temp and pass it as
single argument.
* Codebase maintenance
Overview of changes:
* Added sfpi.sh, Shellfu's favorite plugin interface
One way to make Shellfu-based modules and applications a bit more
modular.
* sfdoc will now accept function or variable name instead of MODULE
New -O switch changes meaning of MODULE to mean function or
variable; sfdoc will then look it up in installed modules and act
as if the module name was provided. Works for default manpage mode
as well as export modes (sfdoc always acts upon whole module, not
just the object.)
* Improved several usage messages
* Codebase maintenance
Overview of changes:
* Added isa.sh, a Shellfu/sh containing few simple validation helpers
* Fixed copy/paste error in shellfu-bash-exit %description
* Re-tuned notification urgencies
Increased urgencies for think(), warn() and mkusage(). Applications
should be either silent (by default or by option) or the messages
should count.
* sfdoc will now use colon to separate module and object in listing
Use of dot can be confusing as the line might look like filename or
a reference in some object-oriented languages.
* Update TFKit to v0.0.16
A significant change is that new TFKit uses term 'relics' rather
than 'artifacts' for general test results. This has been reflected
in local .gitignore.
* Removed grep leak from sfdoc
* Updated MKit to v0.0.29
think() is for messages in verbose modes, if app wants to be verbose it
should not look like the messages don't matter.
warn() is for warnings: either you should totally know about them or
they should not be warnings.
Same holds for mkusage() which basically means the app died because it
could not understand what you wanted it to do.
Use colon to separate module and object in listing
Make the list a bit easier to handle in scripts (colon does not have
special regex meaning).
Also im human-readable contexts, dot makes it more likely to confuse the
string with with filename (eg. `foo.bar`.) But then again, it's better
for humans to go a bit further and decorate the reference, eg.
`foo:bar()` or `foo:$BAZ`. (Doing that in default output would make
them hard to parse, though.)
man version 1.x does not support local file mode. sfdoc is mostly for
development purposes, so instead of jumping through hoops to make it
work; we assume user can view the pages in other format or on a less
obsolete distro.
Turns out moving sfdoc code to dedicated module *and* having the binary
in main package created cyclic dependecy. However, there's easy way out;
let's just run with it as long as it works on most distros.
source-highlight is not necessary (-s|--src will fall back to plain text
if it's missing) and requiring it strictly breaks RHEL6 build.
deb users can follow Suggests field; rpm users will have to find out about
it and install it separately. (Optional requires do exist in newer RPM,
but it's not worth the effort/ifdef bloat.)
Overview of changes:
* Many docstrings fixed, updated and added
* Fixed problems with POD encoding
* sfdoc now supports --which and -s|--src to help with debugging
* Improved error handling in hidden object filtering in sfdoc.sh
* sfembed will not force debugging mode anymore
* sfembed now removes its temp directory
* Codebase maintenance
This has been disabled during early debugging phase and apparently I
just forgot to re-enable it.
Morale: don't use `:` to disable stuff; use `#` (ideally at column 0),
which stands out much more.
Overview of changes:
* Revamped version directive format
This is a backwards-incompatible change, but is an exception because
(well, we're in 0.x.y phase and) it's only used in manpage
generator, so at worst people will lose the version info from
manpage footer. Also it hasn't been around for a long.
* Moved most sfdoc code to separate module
Yet another module has been born. This enables better design, reuse
and also easier testing.
* mkusage will not force empty line before indent mode (-i)
This way it's much more useful; one can produce much more concise
listings (*and* have them indented, *and* read them from array).
* Added -o|--only option to sfdoc for single-directory sets
* sfdoc will now correctly report module version (not Shellfu version)
* sfpath now supports -V, short version of --version-semver
* sfpath now makes sure to sort items consistently under C locale
* Added __usage sub-command to shellfu()
* Moved perl dependency correctly to shellfu-bash-inigrep
* Fixed bad shebang line (thx lintian)
* Solved or muted last ShellCheck issues
* Revised coding style an docstrings
* Codebase maintenance
This was not intended, only indentation was intended (no pun indented).
Seriously, omitting the newline makes the -i mode more useful as we can
now use syntax like:
mkusage "topic" \
--
"topics:" \
"${topics[@]}"
That is much less code, especially if the list we wanted to include is
already in array.
Use CamelCase for inheritable variable names, avoid re-hashing each
module twice and add function and variable docstrings, remove unnecessary
whitespace