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.