From 8784340e645f6537617acea391509de14a5a481a Mon Sep 17 00:00:00 2001 From: Seoxi Ryouko Date: Sun, 4 May 2025 23:21:58 -0400 Subject: [PATCH] Added help message to Linux systems. (Assuming Linux uses gnu coreutils with --help, and non-Linux doesn't.) --- ls_zero.bash | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/ls_zero.bash b/ls_zero.bash index 5c1e77a..d723c17 100644 --- a/ls_zero.bash +++ b/ls_zero.bash @@ -3,12 +3,27 @@ _ls() { env ls "$@" } +matchtest() { + printf "%s" "$1" | grep -qE "$2" +} + _lsp() { - printf "%s" "$*" | grep -qE '(^| )--zero( |$)' + if matchtest "$(uname)" "Linux" && matchtest "$*" '(^| )(-h|--help)( |$)'; then + _ls "$@" + local error=$? + test $error -eq 0 && cat <<- EOF + ls zero bash polyfill: + adds additional --zero option, which seperates + output with null characters rather than newlines + use _ls or env ls for default behavior + EOF + return $error + fi + matchtest "$*" '(^| )--zero( |$)' local zero=$? local args="$@" declare -a args=(${args[@]/--zero/}) - if test "$zero" -eq 0; then + if test $zero -eq 0; then output="$(_ls "${args[@]}")" error=$? printf "%s" "$output" | tr '\n' '\0'