From ba1d41d18caf0a7bbd1ed25d7b99b671b846b972 Mon Sep 17 00:00:00 2001 From: home Date: Sat, 25 Nov 2023 19:21:41 +0300 Subject: [PATCH] recursive : return error on errors. --- .config/bash/module/recursive.sh | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.config/bash/module/recursive.sh b/.config/bash/module/recursive.sh index f96735d..da18595 100644 --- a/.config/bash/module/recursive.sh +++ b/.config/bash/module/recursive.sh @@ -1,5 +1,5 @@ -# run something recursively over all directories. -# usage: recursive [COMMAND] +# Run something recursively over all directories. +# Usage: recursive recursive() { local IFS=$'\n' @@ -7,28 +7,31 @@ recursive() local dirs=$(find -type d) local total=$(find -type d | wc -l) # TODO: don't call find twice. won't work with "echo ${dirs}". local count=0 + local failed=0 for dir in ${dirs}; do # increment counter. ((count++)) # cd into the next dir. - cd "${current}" - cd "${dir}" + cd "${current}" || failed=${?} + cd "${dir}" || failed=${?} # echo status. echo -e "${color_bblue}[${count}/${total}] ${dir}${color_default}" # run command. - $* + $* || failed=${?} done # return back on complete. - cd "${current}" + cd "${current}" || failed=${?} + + return ${failed} } -# run something recursively over all directories. -# usage: recursive [COMMAND] +# Run something recursively over all directories. +# Usage: recursive1 recursive1() # TODO: create generic function. { local IFS=$'\n' @@ -36,6 +39,7 @@ recursive1() # TODO: create generic function. local dirs=$(find -mindepth 1 -maxdepth 1 -type d) local total=$(find -mindepth 1 -maxdepth 1 -type d | wc -l) # TODO: don't call find twice. won't work with "echo ${dirs}". local count=0 + local failed=0 for dir in ${dirs}; do # increment counter. @@ -49,11 +53,13 @@ recursive1() # TODO: create generic function. echo -e "${color_bblue}[${count}/${total}] ${dir}${color_default}" # run command. - $* + $* || failed=${?} done # return back on complete. cd "${current}" + + return ${failed} } # autocomplete.