Hello list, I'm happy to announce the release of gwish v0.3!
gwish (pronounced [g◆iʃ]) is a command-line gwit client written in POSIX shell
as a one-piece script. It strives to have absolute minimal dependencies which
you can find in a 10-year-old Unix box. When possible, gwish tries to use the
example commands shown in the gwit specification, so as to serve as a
proof-of-concept, reference and inspiration for other implementations.
For more information, check out the project's homepage:
<https://git.sr.ht/~ivilata/gwish>
If you have any issues or comments, don't hesitate to contact me. Thank you!
----
The main news in this release is basic site support, i.e. the ability to
access content from a particular gwit site given a path and an optional
version of the site. This is done while taking both root directory and index
file from site configuration into account. The new `cat` and `type` commands
provide access to content and media type, respectively. gwit URIs are not
supported yet, but it should be easy to convert such a URI into a `cat` call.
Great effort has also gone into making gwish compatible with non-GNU systems,
by adhering to POSIX more closely, or choosing approaches compatible with both
GNU and BSD systems.
gwish now also allows to override self-proposed site names (i.e. those in
their site configuration) with your own petnames via environment variables.
Other minor usability and security fixes have been included.
Features:
- Add `cat` command to dump the content at a site's path, with an optional
version.
- Add `type` command to show the media type of the content at a site's path,
with an optional version (sharing syntax and machinery with `cat`).
- Allow to override site names (petnames) via environment variables like
`GWIT_NAME_1a2b...3e4f` (using the site name cache mechanism).
Enhancements:
- Make the script compatible with non-GNU utilities by avoiding non-POSIX
options and features. Tested on NetBSD 9 (5 years old, for lack of a
working image of a 10 years old NetBSD 7 with Git and GnuPG).
- Avoid using null characters as value terminators when possible both
internally and externally. This includes the output of the `conf` command
with `NAME+`. The change simplifies code and support for non-GNU utilities.
- Highlight diagnostic message headings and command names in `help` output for
readability (if on a terminal).
- Better descriptions and consistent initialization of internal global
variables.
Bugfixes:
- Replace unsafe uses of `echo` with `printf` (Dash, BSDs and POSIX' `echo`
always interpret octal escapes in all arguments, and they may not be
sufficiently sanitized).
- Add missing ugly fixes to `fail` calls with tested exit status.
- Use ASCII replacement character in names on non-UTF-8 locales.
- Add missing programs to Coreutils list comment.
--
Ivan Vilata i Balaguer -- https://elvil.net/