zeshy
is a high-level shell scripting language both implemented and interpreted in pure zsh.
zeshy
is currently in a non-compiling state -- which is to say, broken.
Recent feature improvements to the core language (e.g., function prototype-driven programmatic code generation) have proven slippier to implement than initially surmised. Much, much slippier. (Think 80's-era "Slippery When Wet" slippier.)
Until such issues, regressions, unintended consequences, and code calamities have been resolved and the codebase concretely solidified, we strongly discourage installing, using, or otherwise mandhandling zeshy
. It's simply unready.
Over three years, 600 commits, and endless all-nighters later, a first-draft implementation remains the loftiest, hallucinatorily inconceivablest ideal it ever was: pleasant enough in principle, but unabashedly, brashly buggered in practice.
Yet, for all its doleful inadequacies, zeshy
has begun receiving attention. A smattering of stars here; a flurry of forks there. For these and every major and minor blessing by the open-source community, I (leycec) remain gratefully humbled.
Thank you.
And may this journey's end arrive.
zeshy
is a:
- Dynamically recompiled shell scripting language both implemented and interpreted in pure
zsh
. - Drop-in replacement for
zsh
with out-of-the-box support for:- First- and third-party shell, prompt, and function themes and plugins.
- Genuine exception handling.
- Extensive runtime help.
- Cross-platform portable API.
Gentoo effectively supports zeshy
out of the box. (Probably due to zeshy
's implementation by a Gentoo contributor. Probably.)
emerge layman
echo 'source /var/lib/layman/make.conf' >> /etc/make.conf
layman -a raiagent
layman -S
echo ">=dev-zsh/zeshy-0.01" >> /etc/portage/package.accept_keywords
emerge -av zeshy
For all other distributions, please consult your distribution's package manager.
zeshy
is a high-level zsh
framework packaging commonly useful aliases, functions, and variables into first-class components reusable for both interactive command-line sessions and programmatic third-party scripts.
zsh
is arguably the most feature-rich of platform-portable, dynamically-typed, interpreted shell scripting languages. Unfortunately, such richness comes at profound cost: legibility. zsh
trades syntactic conciseness for legibility, admitting such infamously illegible one-liners as:
# List all subdirectories with at least two files prefixed by "index.".
ls **/*(D/e:'l=($REPLY/index.*(N)); (( $#l >= 2 ))':)
zeshy
renders zsh
accessible to lay users by wrapping inscrutable syntactic shell sugar with simplistic interfaces leveraging only common programming language idioms and syntax. Inspired by such industry-standard scripting languages as Python and Ruby, zeshy
hopes to demonstrate zsh
's broad applicability, extensibility, and usability.
zsh
is more than merely impressive syntactic antics and flamboyantly obfuscatory jargon.
zsh
is command-line expressivity. zsh
is shell-scripting explosivity. zsh
is blossoming into the mainstream. Join us and zeshy
as we zest the streaming script of shell software with festive newness. (Phew!)
zeshy
requires only zsh
as a runtime dependency -- but dynamically detects and supports a variety of optional popular applications (e.g., git
, rsync
, screen
, tex
) and distributions (e.g., Gentoo) during runtime execution.
zeshy
is permissively distributed under the community-friendly BSD 2-clause license.