I've been working on this, on-and-off for a while, and I've finally found the time to get it usable/reliable enough to make a public release.
Shell being what it is, the library functions are largely just ways to make code more obvious (i.e. `k_string_pad_left 10 foo` vs `printf '%+10s' foo`).
One big goal is portability, so wherever possible things are done in pure shell, or using POSIX-defined tools. For that reason, there are some current external tool uses (notably `cfget`) that I want to replace, and of course use of things like `gpg` basically requires the environment has a working implementation,
One of the parts that's been both time consuming but also rewarding (in terms of mentally and in terms of results) has been `k-script-build`, which facilitates turning a script with relative source (`.`) statements into either a self-contained script (by inlining those scripts) or a script with absolute references (i.e. if you re-use a `.lib.sh` type file, and want to reference it in a location like `/usr/share`).
The installed versions of the tools, and the library files are themselves built with `k-script-build` which in turn, relies on the library. It's dogfooding/self-hosting up the wazoo.
Shell being what it is, the library functions are largely just ways to make code more obvious (i.e. `k_string_pad_left 10 foo` vs `printf '%+10s' foo`).
One big goal is portability, so wherever possible things are done in pure shell, or using POSIX-defined tools. For that reason, there are some current external tool uses (notably `cfget`) that I want to replace, and of course use of things like `gpg` basically requires the environment has a working implementation,
One of the parts that's been both time consuming but also rewarding (in terms of mentally and in terms of results) has been `k-script-build`, which facilitates turning a script with relative source (`.`) statements into either a self-contained script (by inlining those scripts) or a script with absolute references (i.e. if you re-use a `.lib.sh` type file, and want to reference it in a location like `/usr/share`).
The installed versions of the tools, and the library files are themselves built with `k-script-build` which in turn, relies on the library. It's dogfooding/self-hosting up the wazoo.