mirror of
https://github.com/ipfs/kubo.git
synced 2025-10-25 18:36:26 +08:00
This function can be usefull in many places. See for example: https://github.com/ipfs/go-ipfs/pull/1742 Git has `git rev-parse --sq-quote` that does the same thing. License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
37 lines
779 B
Bash
37 lines
779 B
Bash
# Generic test functions for go-ipfs
|
|
|
|
# Echo the args, run the cmd, and then also fail,
|
|
# making sure a test case fails.
|
|
test_fsh() {
|
|
echo "> $@"
|
|
eval "$@"
|
|
echo ""
|
|
false
|
|
}
|
|
|
|
# Same as sharness' test_cmp but using test_fsh (to see the output).
|
|
# We have to do it twice, so the first diff output doesn't show unless it's
|
|
# broken.
|
|
test_cmp() {
|
|
diff -q "$@" >/dev/null || test_fsh diff -u "$@"
|
|
}
|
|
|
|
# Same as test_cmp above, but we sort files before comparing them.
|
|
test_sort_cmp() {
|
|
sort "$1" >"$1_sorted" &&
|
|
sort "$2" >"$2_sorted" &&
|
|
test_cmp "$1_sorted" "$2_sorted"
|
|
}
|
|
|
|
# Quote arguments for sh eval
|
|
shellquote() {
|
|
_space=''
|
|
for _arg
|
|
do
|
|
printf '%s' "$_space"
|
|
printf '%s' "$_arg" | sed -e "s/'/'\\\\''/g; s/^/'/; s/\$/'/;"
|
|
_space=' '
|
|
done
|
|
printf '\n'
|
|
}
|