1
0
mirror of https://github.com/ARM-software/devlib.git synced 2025-03-03 08:47:50 +00:00

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.
This commit is contained in:
Sergei Trofimov 2017-10-05 09:35:11 +01:00
parent 4d8da589f8
commit d560aea660
2 changed files with 8 additions and 3 deletions

View File

@ -216,10 +216,13 @@ read_tree_values() {
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
}

View File

@ -620,6 +620,8 @@ class Target(object):
check_exit_code=check_exit_code)
result = {}
for entry in output.strip().split('\n'):
if not entry.strip():
continue
path, value = entry.strip().split(':', 1)
result[path] = value
return result