Skip to content

Commit 4182afe

Browse files
committed
fix: Errors properly return instead of exit
1 parent 6e2f0c1 commit 4182afe

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
lines changed

pkg/bin/bobject

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ elif [ -d "$REPLY/lib" ]; then
5454
BASH_OBJECT_LIB_DIR="$REPLY/lib"
5555
else
5656
echo "Error: Could not determine \$BASH_OBJECT_LIB_DIR"
57-
exit 1
57+
return 1
5858
fi
5959

6060
# shellcheck disable=SC1091

pkg/lib/cmd/bobject.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,53 @@ bobject() {
1212
get-string)
1313
if (($# != 2)); then
1414
printf '%s\n' "bash-object: Error: Incorrect arguments for subcommand '$subcmd'"
15-
exit 1
15+
return 1
1616
fi
1717

1818
bash_object.traverse-get string "$@"
1919
;;
2020
get-array)
2121
if (($# != 2)); then
2222
printf '%s\n' "bash-object: Error: Incorrect arguments for subcommand '$subcmd'"
23-
exit 1
23+
return 1
2424
fi
2525

2626
bash_object.traverse-get array "$@"
2727
;;
2828
get-object)
2929
if (($# != 2)); then
3030
printf '%s\n' "bash-object: Error: Incorrect arguments for subcommand '$subcmd'"
31-
exit 1
31+
return 1
3232
fi
3333

3434
bash_object.traverse-get object "$@"
3535
;;
3636
set-string)
3737
if (($# != 3)); then
3838
printf '%s\n' "bash-object: Error: Incorrect arguments for subcommand '$subcmd'"
39-
exit 1
39+
return 1
4040
fi
4141

4242
bash_object.traverse-set string "$@"
4343
;;
4444
set-array)
4545
if (($# != 3)); then
4646
printf '%s\n' "bash-object: Error: Incorrect arguments for subcommand '$subcmd'"
47-
exit 1
47+
return 1
4848
fi
4949

5050
bash_object.traverse-set array "$@"
5151
;;
5252
set-object)
5353
if (($# != 3)); then
5454
printf '%s\n' "bash-object: Error: Incorrect arguments for subcommand '$subcmd'"
55-
exit 1
55+
return 1
5656
fi
5757

5858
bash_object.traverse-set object "$@"
5959
;;
6060
*)
6161
printf '%s\n' "bash-object: Error: Subcommand '$subcmd' not recognized"
62-
exit 1
62+
return 1
6363
esac
6464
}

pkg/lib/traverse-get.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ bash_object.traverse-get() {
4040
# If 'key' is not a member of object or index of array, error
4141
if [ -z "${current_object["$key"]+x}" ]; then
4242
echo "Error: Key '$key' is not in object '$current_object_name'"
43-
exit 1
43+
return 1
4444
else
4545
# If 'key' is a member of an object, or index of array
4646
if [ -n "${TRACE_BASH_OBJECT_TRAVERSE+x}" ]; then
@@ -145,7 +145,7 @@ bash_object.traverse-get() {
145145
if ((i+1 < ${#REPLIES[@]})); then
146146
# TODO
147147
echo "mu" >&3
148-
exit 2
148+
# return 2
149149
:
150150
elif ((i+1 == ${#REPLIES[@]})); then
151151
local value="${current_object["$key"]}"

pkg/lib/traverse-set.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ bash_object.traverse-set() {
4242
# TODO: double-check if new_current_object_name only has underscores, dots, etc. (printf %q?)
4343
if ! eval "declare -gA $new_current_object_name=()"; then
4444
printf '%s\n' 'Error: bash-object: eval declare failed'
45-
exit 1
45+
return 1
4646
fi
4747

4848
current_object["$key"]=$'\x1C\x1D'"type=object;&$new_current_object_name"
@@ -80,7 +80,7 @@ bash_object.traverse-set() {
8080
else
8181
# TODO: throw error
8282
echo "phi" >&3
83-
exit 1
83+
# return 1
8484
fi
8585
:
8686
elif ((i+1 == ${#REPLIES[@]})); then
@@ -115,19 +115,19 @@ bash_object.traverse-set() {
115115
object)
116116
# TODO: test this
117117
echo "Error: Cannot set string on object"
118-
exit 1
118+
return 1
119119
;;
120120
array)
121121
echo "Error: Cannot set string on array"
122-
exit 1
122+
return 1
123123
;;
124124
esac
125125
fi
126126
current_object["$key"]="$final_value"
127127
else
128128
# TODO: throw error
129129
echo "omicron" >&3
130-
exit 1
130+
return 1
131131
fi
132132
fi
133133
fi

0 commit comments

Comments
 (0)