From 2db3ed31a41e4baa2555d88b4e3089a569262696 Mon Sep 17 00:00:00 2001 From: javalsai Date: Tue, 2 Jun 2026 10:18:59 +0200 Subject: [PATCH] fixes(0.1.1) - 0-indexing in zsh - hope declare -g doesnt propagate to env, same scope as functions - fix fallback interpreter exit behavior --- src/lib.sh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/lib.sh b/src/lib.sh index eb33026..069087e 100644 --- a/src/lib.sh +++ b/src/lib.sh @@ -2,9 +2,9 @@ std::bootstrap() { [ -n "${STD_VERSION:-}" ] && std::panic "\`std\` ($STD_VERSION) already loaded, can\'t load version $1" - export STD_VERSION=$1 + declare -g STD_VERSION=$1 } -std::bootstrap 0.1.0 +std::bootstrap 0.1.1 INTERPRETER=$(ps -p $$ | awk '$1 != "PID" {print $(NF)}') : "${INTERPRETER:=bash}" @@ -24,6 +24,24 @@ std::interpreter::is-ksh() { [[ "$(std::interpreter::name)" == ksh ]] } +std::sensible() { + local interpreter + interpreter=$(std::interpreter::name) + case $interpreter in + bash) + ;; + zsh) + # stuff like 0-indexing + emulate -L ksh + ;; + *) + echo "Not sure how to get sourced path for $interpreter" >&2 + exit 1 + ;; + esac +} +std::sensible + std::mod::get-self-path() { local interpreter interpreter=$(std::interpreter::name) @@ -39,7 +57,8 @@ std::mod::get-self-path() { eval 'realpath -e "$(dirname "${.sh.file}")"' ;; *) - echo "Not sure how to get sourced path for $interpreter" + echo "Not sure how to get sourced path for $interpreter" >&2 + exit 1 ;; esac }