Overview of changes:
* Improved an updated tab completion for sfdoc
The tab completion now offers more recent argument and most
importantly, module and/or object names.
* Fixed global variable '$modname' leaking from shellfu()
* Fixed --which treated as if no value was needed
* Mitigated risk of grep ambiguities
* Smaller cleanups and updates
Where regular expression is read from a variable and -e argument is not
provided, the resulting call may end up being interpreted as grep
argument, This can be pretty dangerous, eg. if the variable expands to
`--help`, grep help is shown and grep exits with zero, which would be
interprered as match. Another example is when the variable expands to
a valid grep parameter; this would mean that next argument would be
interprered by grep as the regex, and if the argument after that would
be missing, grep would read stdin, resulting in data messup or grep
waiting
indefinitely.
See also:
https://github.com/koalaman/shellcheck/issues/1342
It's been followed for years in number of projects (granted, all being
exclusively written by author of this style), so calling it "draft"
seems just weasely.
Overview of changes:
* Added SFPI functions to find and dereference plugin variables
* Renamed SFPI name-access functions to be less confusing
* Fixed broken sfpi__import()
* Finished style guide on naming, capitalization and namespacing
* Minor fixes and cleanups
You can't "get function" or "get module" with these functions; just
their *names*. Also "get" is inconsistent with eg. sfpi__ls() and
sfpi__key(): the "getting" part is implied.
Overview of changes:
* Switched to in-line `do`/`then` style
Many projects actually use it already.
* Updated docs and meta-data after moving from GitHub to pagure.io
* Updated docs after mofing COPR repos
* Added VCS Browser URL to specfile
* Codebase maintenance and cleanups
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