To make it a bit easier to maintain multiple Shellfu/Bash libraries, we
want to have sort of "template" and keep every module as close to it as
practical.
Overview of changes:
* Added BASH_VERSION and SATURNIN_APP_VERSION to debug output
Dodge PRETTY_DEBUG_EXCLUDE and report these even in "normal" debug
mode.
* Added upper Shellfu dependency version limit
* Changed to shorter name of debian/install file
The 'package.install' form is for cases with multiple binary
packages.
* Removed extra version parts from (Build)Requires
* Updated format of version declaration
Newer Shellfu changes this format, although dependency changes are
not justified as almost nothing uses the version directive.
* Codebase maintenance
Overview of changes:
* Reverted pre-pending behavior of saturnin__conf_mkpath()
Turns out it caused more harm than good; see related commit for
details.
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.
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
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.
Overview of changes:
* Converted to pure shellfu library
So far we have relied on users embedding Saturnin inside their app
and updating it by porting changes manually. This has been awkward
but was safer for preliminary versions where feature set was not
stable and separation of the library and the app skeleton has not
been done properly.
Nowadays, these problems have been mostly resolved; the feature set
seems to be stable and the app skeleton has been reduced to only the
few lines, so it's time to make Saturnin a proper shellfu library.
Of course, Saturnin can still be embedded, but primary use case is
to depend on it and import it just as any other shellfu module.
The 'satcmd' demo app has been moved to a different repo.
* Ported conf merge tests from old inigrep
This was a long-standing debt from the inigrep split. Tests
originally created for inigrep have been ported to focus on
saturnin__conf(), throwing few more in for good measure.
* Enabled --help (friendly usage()) in saturnin__conf()
saturnin__conf() (exposed to user as `myapp conf`) now supports the
obligatory --help argument.
* Did some updates and cleanups.
Move satcmd to other repo and distribute saturnin as a stand-alone
shellfu library. Users can import just the library instead of
embedding it inside their source tree, which enables them to delegate
part of the job to package manager.
Overview of changes:
* Don't hide short options from usage message and Bash autocomplete
* saturnin-conf now has usage message
* saturnin-conf now exits with useful status in some scenarios
* Hacked completion code together so that updating should be easier
(command name is set only once)
* Cleanup and maintenance
Overview of changes:
* Improved help and usage messages
Small but long wished for change; this may improve ability to
explore apps easily.
* Code clean up and maintenance
Overview of changes:
* Updated for shellfu 0.9.x
New shellfu version brings about a lot of changes; this release is
mostly about catching up with it.
* Use predictable meta binary name
Applications will have updating easier if they use simple generic name
for meta-command source file; we should set an example (that's the
point of satcmd, after all).
* Minor clean up
Overview of changes:
* Added "last git hash" to application version meta-data (--saturnin-get-*)
* Improve meta command template
* Build system maintenance
Overview of changes:
* Changed default cache path to under .cache subdir
* Added --saturnin-get-* for printing Saturnin internal info
* Simplified test suite a bit with new TFKit
* Enabled Debian packaging
* Repo maintenance and cleanup
Use of app name when naming of global variables and/or mkit tokens makes
upgrade of the saturnin template painful and error-prone, while none of
these variables can be overriden from environment so the namespacing
advantage is vain.
New command allows to define flexible menus in INI files.
Single INI root now contains all menu definitons. Each menu consists of
item generator, selector and consumer, which are checked and chained
together.
Alternatively to specifying a generator, items can be listed right in
the INI section.
This module is intended to be moved around with saturnin, but unlike
main meta-command (bin/saturnin.skel), it should not be necessary to
rename it or edit to adapt to new project.