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
This also changes format; the 'K: V' format is problematic as it makes
it hard to separate from other directives. 'K=V' is now the only
accepted format.
Overview of changes:
* Override SHELLFU_INCLUDE in test runs
Otherwise modules are actually loaded from system, if they are
installed.
* SHELLFU_PATH now has preference over SHELLFU_INCLUDE
This should have been all along; SHELLFU_PATH would not be able to
force a particular module version in cases like testing.
* Added shellfu() docstring
* Minor co
* Improved and updated test header
Overview of changes:
* Re-packaged with better granularity
Having multi-module packages such as 'shellfu-core' limits dependency
control on user part. Additionally, after splitting packages
to one-per-module, we could move some of modules to 'sh' space,
ie. increase their usability.
* Removed old 'sync' module
Having one "wait" function does not really justify its presence in
the main shellfu repo; if anyone needs it anyway, I can provide it
as a separate package.
* Renamed binaries shellfu-doc and shellfu-get to sfpath and sfdoc
Both were kind of hard to type. "shellfu-get" was a bit too generic
given that it really only prints path. Also 'sfdoc' resembles other
doc viewers such as 'perldoc' and 'pydoc'.
* Moved sfdoc to main package
sfdoc can be useful everywhere Shellfu style is used; not just in
Shellfu modules.
* Moved packages to /usr space
Eventually, if packages should reach distributions, they should be
there anyway. Also it makes it easier to use Shellfu in
environments where /usr/local/bin might be missing on PATH (eg. cron
on debian).
* Improved and cleaned up lot of meta-data
From SPEC file to debian directory to mkit.ini, there have been many
changes in meta-data.
* Excluded shellfu_import test from Debian build time
This test cannot succeed because it relies on shell features ouside
POSIX that Debian's minimalistic dash does not implement. The test
will have to be rewritten; the issue is tracked here:
https://github.com/AloisMahdal/shellfu/issues/1
* Added 'version' sub-command to shellfu()
Now shellfu() function can report version of a Shellfu module.
Versioning is not mandatory but can be useful for module unit tests
to provide more rich reports. (E.g. TF_HEADER in external module
shellfu-bash-saturnin makes use of this)
* Refactored shellfu() a bit
* Made sfpath respect SHELLFU_DIR from environment
* Added warning in sfdoc if pod2man is missing
* Changed license to LGPLv2
* Fixed pretty.debug() bug that would hide caller name
* Fixed test bug with debug -v and Bash 4.4+
* Refactored tests a bit
* Added build-time tests
* Codebase maintenance
Older Bash would let this get away since the output is used with form:
read a b <<<$(_pretty__get_caller)
which joined the parts into single line, which happened to be what we
want.
Switch to packaging model where each module goes into separate package.
Such model makes much more sense (after all it's also how big platforms
such as python do it). It allows better control over dependencies and
allows re-locating modules properly according to compatibility level
(i.e. now exit.sh can go to 'sh' despite the fact that in 'core' it had
to be with other Bash-compatible modules).