Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
87bb9f4660 | ||
|
caabcd25ff | ||
|
8f82cf5aeb | ||
|
385ec3fe81 | ||
|
d4eb99ffb0 | ||
|
ed939ff39a | ||
|
d24a71d0d7 |
@@ -1,3 +1,5 @@
|
|||||||
|
Copyright (c) 2013, 2014, 2015, 2016 Thomas Levine
|
||||||
|
Copyright (c) 2014, Michael Klement
|
||||||
Copyright (c) 2012, ScraperWiki Limited
|
Copyright (c) 2012, ScraperWiki Limited
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
3
HISTORY
3
HISTORY
@@ -14,6 +14,9 @@ Version 0.0.6
|
|||||||
* Remove the undocumented, experimental -x flag now that shall exists.
|
* Remove the undocumented, experimental -x flag now that shall exists.
|
||||||
* Display version number with the -v flag.
|
* Display version number with the -v flag.
|
||||||
* Document why Urchin is called "Urchin"
|
* Document why Urchin is called "Urchin"
|
||||||
|
* Update TODO
|
||||||
|
* Support mksh (Change a printf command.)
|
||||||
|
* Make long lines shorter.
|
||||||
|
|
||||||
These changes are made somewhat separately in the branches "exit-on-fail",
|
These changes are made somewhat separately in the branches "exit-on-fail",
|
||||||
"remove-urchin-x", "tap", and "update-readme". They are rebased into one
|
"remove-urchin-x", "tap", and "update-readme". They are rebased into one
|
||||||
|
39
urchin
39
urchin
@@ -1,7 +1,16 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Make sure that CDPATH isn't set, as it causes `cd` to behave unpredictably - notably, it can produce output,
|
# This file is part of urchin. It is subject to the license terms in the
|
||||||
# which breaks fullpath().
|
# COPYING file found in the top-level directory of this distribution or at
|
||||||
|
# https://raw.githubusercontent.com/tlevine/urchin/master/COPYING
|
||||||
|
|
||||||
|
# No part of urchin, including this file, may be copied, modified, propagated,
|
||||||
|
# or distributed except according to the terms contained in the COPYING file.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Make sure that CDPATH isn't set, as it causes `cd` to behave unpredictably -
|
||||||
|
# notably, it can produce output, which breaks fullpath().
|
||||||
unset CDPATH
|
unset CDPATH
|
||||||
|
|
||||||
# Urchin version number
|
# Urchin version number
|
||||||
@@ -133,7 +142,10 @@ recurse() {
|
|||||||
# On fail, print a red '✗'
|
# On fail, print a red '✗'
|
||||||
printf '\033[31m✗ \033[0m'
|
printf '\033[31m✗ \033[0m'
|
||||||
printf '%s\n' "${potential_test}"
|
printf '%s\n' "${potential_test}"
|
||||||
printf '\033[31m' # Print output captured from failed test in red.
|
|
||||||
|
# Print output captured from failed test in red.
|
||||||
|
printf '\033[31m'
|
||||||
|
|
||||||
cat "$stdout_file"
|
cat "$stdout_file"
|
||||||
printf '\033[0m'
|
printf '\033[0m'
|
||||||
;;
|
;;
|
||||||
@@ -151,8 +163,13 @@ recurse() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
has_sh_or_no_shebang_line() {
|
has_sh_or_no_shebang_line() {
|
||||||
head -n 1 "$1" | grep -vqE '^#!' && return 0 # no shebang line at all
|
# no shebang line at all
|
||||||
head -n 1 "$1" | grep -qE '^#![[:blank:]]*/bin/sh($|[[:blank:]])' && return 0 # shebang line is '#!/bin/sh' or legal variations thereof
|
head -n 1 "$1" | grep -vqE '^#!' && return 0
|
||||||
|
|
||||||
|
# shebang line is '#!/bin/sh' or legal variations thereof
|
||||||
|
head -n 1 "$1" | grep -qE '^#![[:blank:]]*/bin/sh($|[[:blank:]])' &&
|
||||||
|
return 0
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,7 +244,10 @@ urchin_go() {
|
|||||||
echo "Done, took $elapsed $(plural second $elapsed)."
|
echo "Done, took $elapsed $(plural second $elapsed)."
|
||||||
printf '%s\n' "$passed $(plural test "$passed") passed."
|
printf '%s\n' "$passed $(plural test "$passed") passed."
|
||||||
printf '%s\n' "$skipped $(plural test "$skipped") skipped."
|
printf '%s\n' "$skipped $(plural test "$skipped") skipped."
|
||||||
[ $failed -gt 0 ] && printf '\033[31m' || printf '\033[32m' # If tests failed, print the message in red, otherwise in green.
|
|
||||||
|
# If tests failed, print the message in red, otherwise in green.
|
||||||
|
[ $failed -gt 0 ] && printf '\033[31m' || printf '\033[32m'
|
||||||
|
|
||||||
printf '%s\n' "$failed $(plural test "$failed") failed."
|
printf '%s\n' "$failed $(plural test "$failed") failed."
|
||||||
printf '\033[m'
|
printf '\033[m'
|
||||||
fi
|
fi
|
||||||
@@ -259,8 +279,11 @@ do
|
|||||||
-s)
|
-s)
|
||||||
shift
|
shift
|
||||||
shell_for_sh_tests=$1
|
shell_for_sh_tests=$1
|
||||||
which "$shell_for_sh_tests" >/dev/null || { echo "Cannot find specified shell: '$shell_for_sh_tests'" >&2; urchin_help >&2; exit 2; }
|
which "$shell_for_sh_tests" > /dev/null || {
|
||||||
;;
|
echo "Cannot find specified shell: '$shell_for_sh_tests'" >&2
|
||||||
|
urchin_help >&2
|
||||||
|
exit 2
|
||||||
|
} ;;
|
||||||
-t) tap_format=true;;
|
-t) tap_format=true;;
|
||||||
-h|--help) urchin_help
|
-h|--help) urchin_help
|
||||||
exit 0;;
|
exit 0;;
|
||||||
|
Reference in New Issue
Block a user