Revert pre-pending behavior of saturnin__conf_mkpath()
Turns out this was not a good idea as it would too easy to trigger.
If a saturnin sub-command was called from within itself (or another other
sub-command), the $SATURNIN_CONF_PATH computed earlier would just double,
leading to unwanted behavior of saturnin__conf_find(), which would find
items twice.
The original problem should be adressed another way; the testing case
be covered by either writing tests on a lower level; eg. unit tests
and use saturnin__conf_find() or saturnin__conf() without forking.
Another solution on part of Saturnin could be to introduce different
variable (e.g. SATURNIN_CONF_DIRS) for values computed by launcher
and keep $SATURNIN_CONF_PATH just for user.
Overview of changes:
* Made saturnin__mkpath() respect $SATURNIN_CONF_PATH
Ignoring the environment variable would make it hard to do system
tests in staged environments (such as RPM's `%check`) that would
rely on saturnin__conf().
Overview of changes:
* Added --saturnin-get-subcommands devel key
In last update I inanely removed _ls_sc sub-command used by
completion example in saturnin-demo. This is a final replacement,
which is actually consistent with the rest of plumbing commands.
* Improved docstrings for sfdoc
Added and fixed some old docstrings as well as added module
docstring.
* Improved usage errors with newer Shellfu's pretty.sh interface
pretty.sh in newer Shellfu can handle usage messages in more
user-friendly way, by providing option to append error reason
to the message itself.
(With previous version, one could achieve similar effect but with
more negative effect on readability.)
* Fixed build-time test for Debian
Turns out that dehbelper does not install the package on its own so
we have to deal with it manually.
* Minor code cleanup
Overview of changes:
* Fixed many packaging errors
Added proper (build) dependencies, fixed build-time tests (rpm and
deb), updated meta-data.
* Updated code to work with for Shellfu v0.10.0
* Removed obsolete internal subcommands
* Added support for -V for version (SemVer-formatted)
* Changed license to LGPLv2
Overview of changes:
* Added option to enable stronger debugging
You can use PRETTY_DEBUG_EXCLUDE to mute some output from your apps
that might not be always relevant (example launcher in saturnin-demo
does this). This option re-sets the variable to empty string, making
sure your pretty apps will show as much as possible.
* Added tests to deb and rpm packages
* Added test header (requires Shellfu v0.9.7+)
* Fixed, tidied up and updated project and packaging meta-data
* Fixed usage test
* Codebase maintenance
Overview of changes:
* Enabled adding meta command help text
User can now specify SATURNIN_META_HELP environment variable to
control what happens when meta-command is called with `--help`
argument.
* Removed `conf` from default sub-command list
The command is essentially internal; usage from outside is possible
but requires knowledge normally only available to developers.
conf is Saturnin's internal command to access common configuration. It
could be, in theory, useful for end-user to investigate the configuration,
but they would already need to know how it works and which configuration
keypaths or sections they want to look at.
Bettter hide it; it's not worth for the potential confusion.
Note that the command could actually even be removed one day since
internally it's much more efficient to use saturnin__conf().
Overview of changes:
* Properly filter subcommands on listing
In contexts like main --help and tab completion, Saturnin would show
also arbitrary files from libexec that did not start with dedicated
prefix ($SATURNIN_LIBEXEC_PREFIX). This was a mistake and was never
intended to work that way.
* Hook code is now run as separate bash process
Running it within sub-command code was a little bit too unsafe;
there's no need to be evil^Weval here.
* Rewrote saturnin__version() (used for app --version)
Newly, --version will only incorporate tagline if it was defined in
mkit.ini.
Also "Powered by Saturnin" line has been added so that we don't have
to ask user every time.
* Added --saturnin-get-saturnin-version
It's a good idea to include this with test reports and the like so
we're making it more accessible to scripts.
* API documentation clarifications
* Codebase maintenance
* Refactoring for code readability
Only print tagline if defined (similar to codename); do not make it up
with silly string.
Also we can do away without any local variables *and* very safely inside
79 character width recommendation.
Overview of changes:
* Added generic config file finder
This can be used to find config files other than INIs but using the
same merging mechanism. For example, `saturnin__conf_find "foo"`
should output to first existing instance of file "foo", which could
live under any of paths set in SATURNIN_CONF_PATH (typically
/usr/share/app/ini.d/dist/foo, /etc/app/foo, ~/.config/app/foo,
~/.config/app/ini.d/my/foo...).
This function is now also internally usef by saturnin__conf().
* Added module-version meta-data for future Shellfu generations
Current version of Shellfu does not support this yet, but in future
it should read this and display in lists, man pages, etc.