sort fallback
This commit is contained in:
parent
e7a3d633ca
commit
bd5240d726
|
@ -56,7 +56,6 @@ and use the incomplete sort that is installed on your system. This is not a
|
||||||
big deal; if your test files all start with alphanumeric letters, the output
|
big deal; if your test files all start with alphanumeric letters, the output
|
||||||
should look fine.
|
should look fine.
|
||||||
|
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
Urchin is contained in a single file, so you can install it by copying it to a
|
Urchin is contained in a single file, so you can install it by copying it to a
|
||||||
directory in your `PATH`. For example, you can run the following as root.
|
directory in your `PATH`. For example, you can run the following as root.
|
||||||
|
|
26
urchin
26
urchin
|
@ -56,6 +56,13 @@ if [ -n "${ZSH_VERSION}" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
sort_python() {
|
||||||
|
python -c 'import sys
|
||||||
|
for line in sorted(sys.stdin.readlines()):
|
||||||
|
sys.stdout.write(line)
|
||||||
|
'
|
||||||
|
}
|
||||||
|
|
||||||
# All temporary files go here
|
# All temporary files go here
|
||||||
urchin_tmp=$(mktemp -d)
|
urchin_tmp=$(mktemp -d)
|
||||||
> "${urchin_tmp}/log"
|
> "${urchin_tmp}/log"
|
||||||
|
@ -274,9 +281,7 @@ report_outcome() {
|
||||||
# Use a temporary file rather than a pipe because a pipe starts a sub-shell
|
# Use a temporary file rather than a pipe because a pipe starts a sub-shell
|
||||||
# and thus makes the above variables local.
|
# and thus makes the above variables local.
|
||||||
sorted_log_file=$(mktemp)
|
sorted_log_file=$(mktemp)
|
||||||
|
"${sort}" "${log_file}" > "${sorted_log_file}"
|
||||||
# GNU sort is broken. Oh well.
|
|
||||||
sort "${log_file}" > "${sorted_log_file}"
|
|
||||||
|
|
||||||
while read line; do
|
while read line; do
|
||||||
abspath=$(echo "${line}" | cut -f1)
|
abspath=$(echo "${line}" | cut -f1)
|
||||||
|
@ -580,10 +585,17 @@ main() {
|
||||||
# Warn about strange sort commands
|
# Warn about strange sort commands
|
||||||
weird_string='@ b\n- d\n? a\n~ c\n! e\n'
|
weird_string='@ b\n- d\n? a\n~ c\n! e\n'
|
||||||
sort_result="$(printf "${weird_string}" | sort | cut -d\ -f2 | tr -d '\n')"
|
sort_result="$(printf "${weird_string}" | sort | cut -d\ -f2 | tr -d '\n')"
|
||||||
if test "${sort_result}" != edacb; then
|
if test "${sort_result}" = edacb; then
|
||||||
echo 'Your version of sort sorts in dictionary order (-d) by default.
|
sort=sort
|
||||||
Depending on how you name your tests, your Urchin output may look strange.
|
else
|
||||||
If this is a problem, install BusyBox or BSD coreutils.' >&2
|
if which python > /dev/null; then
|
||||||
|
sort=sort_python
|
||||||
|
else
|
||||||
|
echo 'Your version of sort sorts in dictionary order (-d) by default.
|
||||||
|
Depending on how you name your tests, your Urchin output may look strange.
|
||||||
|
If this is a problem, install BusyBox or BSD coreutils.' >&2
|
||||||
|
sort=sort
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "${urchin_timeout}"; then
|
if test -n "${urchin_timeout}"; then
|
||||||
|
|
Loading…
Reference in New Issue
Block a user