Target: fix read_tree_values for empty dir
grep was existing with 1 when passed an empty directory, resulting in
TargetError being raised unless explicitly suppressed with
check_exit_code=False. This case is now fixed to correctly return an
empty dict without error.
read_tree_values bash function has also been optimized to not
unnecessarily run find in a subshell if the path passed to the function
does not exist.
diff --git a/devlib/bin/scripts/shutils.in b/devlib/bin/scripts/shutils.in
index a678a65..401e51e 100755
--- a/devlib/bin/scripts/shutils.in
+++ b/devlib/bin/scripts/shutils.in
@@ -216,10 +216,13 @@
PATH=$1
MAXDEPTH=$2
+ if [ ! -e $PATH ]; then
+ echo "ERROR: $PATH does not exist"
+ exit 1
+ fi
+
PATHS=$($BUSYBOX find $PATH -follow -maxdepth $MAXDEPTH)
- if [ ${#PATHS[@]} -eq 0 ]; then
- echo "ERROR: '$1' does not exist"
- else
+ if [ ${#PATHS[@]} -gt 1 ]; then
$BUSYBOX grep -s '' $PATHS
fi
}