mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Add lint for [
instead of [[
in shells scripts
This commit is contained in:
parent
9231ca1c69
commit
f07d8f188a
5 changed files with 17 additions and 8 deletions
|
@ -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):
|
||||
|
|
|
@ -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}" ]
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue