diff options
-rwxr-xr-x | ports/geckolib/gecko_bindings/tools/regen.sh | 8 | ||||
-rwxr-xr-x | ports/geckolib/gecko_bindings/tools/setup_bindgen.sh | 8 | ||||
-rw-r--r-- | python/tidy/servo_tidy/tidy.py | 3 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/shell_tidy.sh | 4 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/test_tidy.py | 2 |
5 files changed, 17 insertions, 8 deletions
diff --git a/ports/geckolib/gecko_bindings/tools/regen.sh b/ports/geckolib/gecko_bindings/tools/regen.sh index 7bbd908c1f3..fc2ed08a833 100755 --- a/ports/geckolib/gecko_bindings/tools/regen.sh +++ b/ports/geckolib/gecko_bindings/tools/regen.sh @@ -8,25 +8,25 @@ set -o errexit set -o nounset set -o pipefail -if [ ${#} -eq 0 ]; then +if [[ ${#} -eq 0 ]]; then echo "Usage: ${0} /path/to/gecko/objdir [other-regen.py-flags]" exit 1 fi # Check for rust-bindgen -if [ ! -d rust-bindgen ]; then +if [[ ! -d rust-bindgen ]]; then echo "rust-bindgen not found. Run setup_bindgen.sh first." exit 1 fi # Check for /usr/include -if [ ! -d /usr/include ]; then +if [[ ! -d /usr/include ]]; then echo "/usr/include doesn't exist." \ "Mac users may need to run xcode-select --install." exit 1 fi -if [ "$(uname)" == "Linux" ]; then +if [[ "$(uname)" == "Linux" ]]; then LIBCLANG_PATH=/usr/lib/llvm-3.8/lib else LIBCLANG_PATH="$(brew --prefix llvm38)/lib/llvm-3.8/lib" diff --git a/ports/geckolib/gecko_bindings/tools/setup_bindgen.sh b/ports/geckolib/gecko_bindings/tools/setup_bindgen.sh index 2c6c8831697..4d1b67e3f43 100755 --- a/ports/geckolib/gecko_bindings/tools/setup_bindgen.sh +++ b/ports/geckolib/gecko_bindings/tools/setup_bindgen.sh @@ -12,14 +12,14 @@ set -o pipefail cd "$(dirname ${0})" # Setup and build bindgen. -if [ "$(uname)" == "Linux" ]; then +if [[ "$(uname)" == "Linux" ]]; then export LIBCLANG_PATH=/usr/lib/llvm-3.8/lib else export LIBCLANG_PATH="$(brew --prefix llvm38)/lib/llvm-3.8/lib" fi # Make sure we have llvm38. -if [ ! -x "$(command -v clang-3.8)" ]; then +if [[ ! -x "$(command -v clang-3.8)" ]]; then echo "llmv38 must be installed." \ "Mac users should |brew install llvm38|, Linux varies by distro." exit 1 @@ -29,13 +29,13 @@ export LD_LIBRARY_PATH="${LIBCLANG_PATH}" export DYLD_LIBRARY_PATH="${LIBCLANG_PATH}" # Check for multirust -if [ ! -x "$(command -v multirust)" ]; then +if [[ ! -x "$(command -v multirust)" ]]; then echo "multirust must be installed." exit 1 fi # Don't try to clone twice. -if [ ! -d rust-bindgen ]; then +if [[ ! -d rust-bindgen ]]; then git clone https://github.com/servo/rust-bindgen.git fi diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py index 50fd7ca8a5c..3433e8265ed 100644 --- a/python/tidy/servo_tidy/tidy.py +++ b/python/tidy/servo_tidy/tidy.py @@ -347,6 +347,9 @@ def check_shell(file_name, lines): if "`" in stripped: yield (idx + 1, "script should not use backticks for command substitution") + if " [ " in stripped or stripped.startswith("[ "): + yield (idx + 1, "script should use `[[` instead of `[` for conditional testing") + for dollar in re.finditer('\$', stripped): next_idx = dollar.end() if next_idx < len(stripped): diff --git a/python/tidy/servo_tidy_tests/shell_tidy.sh b/python/tidy/servo_tidy_tests/shell_tidy.sh index e24b361fe16..e38358fc3b6 100644 --- a/python/tidy/servo_tidy_tests/shell_tidy.sh +++ b/python/tidy/servo_tidy_tests/shell_tidy.sh @@ -8,3 +8,7 @@ set -o nounset echo "hello world" some_var=`echo "command substitution"` another_var="$some_var" +if [ -z "${some_var}" ]; then + echo "should have used [[" +fi +[ -z "${another_var}" ] diff --git a/python/tidy/servo_tidy_tests/test_tidy.py b/python/tidy/servo_tidy_tests/test_tidy.py index 2eee04a19a3..92b304a5c1a 100644 --- a/python/tidy/servo_tidy_tests/test_tidy.py +++ b/python/tidy/servo_tidy_tests/test_tidy.py @@ -54,6 +54,8 @@ class CheckTidiness(unittest.TestCase): self.assertEqual('script is missing options "set -o errexit", "set -o pipefail"', errors.next()[2]) self.assertEqual('script should not use backticks for command substitution', errors.next()[2]) self.assertEqual('variable substitutions should use the full \"${VAR}\" form', errors.next()[2]) + self.assertEqual('script should use `[[` instead of `[` for conditional testing', errors.next()[2]) + self.assertEqual('script should use `[[` instead of `[` for conditional testing', errors.next()[2]) self.assertNoMoreErrors(errors) def test_rust(self): |