contrib/check-code.py
branchstable
changeset 16497 c326fe884daa
parent 16496 abbabbbe4ec2
child 16590 7f76c97361e0
equal deleted inserted replaced
16496:abbabbbe4ec2 16497:c326fe884daa
    74     (r'(\[|\btest\b).*-e ', "don't use 'test -e', use 'test -f'"),
    74     (r'(\[|\btest\b).*-e ', "don't use 'test -e', use 'test -f'"),
    75     (r'^alias\b.*=', "don't use alias, use a function"),
    75     (r'^alias\b.*=', "don't use alias, use a function"),
    76     (r'if\s*!', "don't use '!' to negate exit status"),
    76     (r'if\s*!', "don't use '!' to negate exit status"),
    77     (r'/dev/u?random', "don't use entropy, use /dev/zero"),
    77     (r'/dev/u?random', "don't use entropy, use /dev/zero"),
    78     (r'do\s*true;\s*done', "don't use true as loop body, use sleep 0"),
    78     (r'do\s*true;\s*done', "don't use true as loop body, use sleep 0"),
       
    79     (r'^( *)\t', "don't use tabs to indent"),
    79   ],
    80   ],
    80   # warnings
    81   # warnings
    81   []
    82   []
    82 ]
    83 ]
    83 
    84 
    85     (r"( *)(#([^\n]*\S)?)", repcomment),
    86     (r"( *)(#([^\n]*\S)?)", repcomment),
    86     (r"<<(\S+)((.|\n)*?\n\1)", rephere),
    87     (r"<<(\S+)((.|\n)*?\n\1)", rephere),
    87 ]
    88 ]
    88 
    89 
    89 uprefix = r"^  \$ "
    90 uprefix = r"^  \$ "
    90 uprefixc = r"^  > "
       
    91 utestpats = [
    91 utestpats = [
    92   [
    92   [
    93     (r'^(\S|  $ ).*(\S[ \t]+|^[ \t]+)\n', "trailing whitespace on non-output"),
    93     (r'^(\S|  $ ).*(\S[ \t]+|^[ \t]+)\n', "trailing whitespace on non-output"),
    94     (uprefix + r'.*\|\s*sed', "use regex test output patterns instead of sed"),
    94     (uprefix + r'.*\|\s*sed', "use regex test output patterns instead of sed"),
    95     (uprefix + r'(true|exit 0)', "explicit zero exit unnecessary"),
    95     (uprefix + r'(true|exit 0)', "explicit zero exit unnecessary"),
    96     (uprefix + r'.*(?<!\[)\$\?', "explicit exit code checks unnecessary"),
    96     (uprefix + r'.*(?<!\[)\$\?', "explicit exit code checks unnecessary"),
    97     (uprefix + r'.*\|\| echo.*(fail|error)',
    97     (uprefix + r'.*\|\| echo.*(fail|error)',
    98      "explicit exit code checks unnecessary"),
    98      "explicit exit code checks unnecessary"),
    99     (uprefix + r'set -e', "don't use set -e"),
    99     (uprefix + r'set -e', "don't use set -e"),
   100     (uprefix + r'\s', "don't indent commands, use > for continued lines"),
   100     (uprefix + r'\s', "don't indent commands, use > for continued lines"),
   101     (uprefixc + r'( *)\t', "don't use tabs to indent"),
       
   102   ],
   101   ],
   103   # warnings
   102   # warnings
   104   []
   103   []
   105 ]
   104 ]
   106 
   105