What is uze?

I wrote zsh scripts and libraries for more than 15 years now and i'm very opiniated about what a minimal ~/.zshenv could be.

uze.zsh is here to be sourced in your ~/.zshenv or your script so those best practices are available. Now you can write zsh this way: (mir test suite)

uze mir
uze devel/TAP :all

mir_is_loaded () 
for expected ( mir/ed mir/dump ) {
    got="$( shush2 whence -wam $expected )"
    [[ ${got%: *} == $expected ]]
    ok "$expected is ready to use" ||
    note "got $got"
}


prove mir_is_loaded

Perl has CPAN, Python has Pypi, Lua has rocks, Javascript has npm, Lilypond has lyp, it's time for zsh to have something similar. you can see modules using uze.

Installation

source uze.zsh from your ~/.zshenv.

Zsh, seriously?

For some historical reasons, zsh comes with flaws and conventions are there to make those flaws less annoying. zsh is still relevant for a lot of tasks as it is a dynamic langage comming with lot of features.

Modules you must know about

testing

see devel-tap repo and test anything protocol.

Testing is very important as your zsh scripts relies on incompatible tools which silently misbehave at runtime (GNU core utils, BSD tools, 9base ...).

It is also recommended to install devel/TAP so you can write test suites for your