Vidar Holen
13ff0a7432
Warn when arrays are appended/assigned scalars.
2016-05-14 16:24:18 -07:00
Vidar Holen
40136fe249
Fix parsing of [[ a =~ {$var} ]]
2016-05-08 12:19:25 -07:00
Vidar Holen
86999ded1f
Improve 'let' parsing, trigger unused var for ((a=1))
2016-04-30 13:45:39 -07:00
Vidar Holen
7551a241ad
Add missing warnings for {$i..10} similar to {1..$i}
2016-04-23 16:00:56 -07:00
Vidar Holen
2f0ae44de4
Fix parsing of here documents
2016-04-16 19:14:02 -07:00
Vidar Holen
f835c2d4c1
Fix handling of spaces in shebangs.
2016-04-16 09:42:07 -07:00
Vidar Holen
db0c8c2dc9
Separate out command specific checks.
...
The checks use a better interface and give
an overall speed boost of 10%.
2016-04-10 17:01:40 -07:00
Vidar Holen
9911470d67
Don't warn about LINENO in dash
2016-04-09 09:56:07 -07:00
Vidar Holen
a5821c3a4d
s/sh/bash/ in SC2176 because of posix guarantees.
2016-03-19 16:47:55 -07:00
Vidar Holen
c91083354f
Warn about timing pipelines and compound commands in sh/dash.
2016-03-19 16:14:55 -07:00
Vidar Holen
2957fb64c9
Allow parsing 'time ( foo )'
2016-03-19 16:13:54 -07:00
Vidar Holen
944313c6ba
Directives after the shebang now apply to the entire script.
...
Also adds support for the shell= directive.
2016-03-08 20:16:16 -08:00
Vidar Holen
6af1aeb259
Add warning for multi-digit FDs in posix/dash.
2016-03-08 17:37:12 -08:00
Vidar Holen
8a3bd25f7c
Improve error for missing final ) in $((foo)
2016-02-07 14:16:40 -08:00
Vidar Holen
825c1b5d22
Support parsing $((( as $( ((, with warning.
2016-02-06 22:19:29 -08:00
Vidar Holen
92473b512a
Add warning for trailing spaces after \ breaks.
2016-02-01 20:20:34 -08:00
Vidar Holen
7e75d12ce1
Improve expansion in single quote false positives.
2016-01-26 19:57:18 -08:00
Vidar Holen
7d278c3ca1
Ignore SC2055 if rhs of either != is a glob.
2016-01-26 19:12:47 -08:00
Vidar Holen
5f1175fb58
Add special case warning to quote in eval echo {1..$n}
2016-01-25 18:46:55 -08:00
Vidar Holen
f9909504dd
Make SC2174 only trigger for nested directories.
2016-01-09 14:24:31 -08:00
koalaman
fa4cefda9d
Merge pull request #572 from eatnumber1/mkdir
...
Add a warning when you mkdir with both -p and -m.
2016-01-09 13:58:53 -08:00
Russell Harmon
f2f6c66902
Add a warning when you mkdir with both -p and -m.
...
When using -p, parent directories will not be created with the mode
specified with -m and will instead be created using the default behavior
controlled by umask.
2016-01-08 14:15:11 -08:00
Vidar Holen
528381796e
Allow escaped characters in [..] globs
2015-12-13 10:19:48 -08:00
Vidar Holen
ad7ad28246
Merge branch 'master' of github.com:koalaman/shellcheck
2015-12-12 15:53:18 -08:00
Vidar Holen
33ab998b02
Don't warn about quoting for [ -v var ]
2015-12-12 15:47:35 -08:00
Russell Harmon
e0e5ba3a90
Add more variables which are assumed to be set.
...
This commit adds LC_MONETARY, LOGNAME, LD_LIBRARY_PATH, LANGUAGE,
DISPLAY, HOSTNAME, KRB5CCNAME, XAUTHORITY to be ignored when used
without initialization.
2015-12-10 20:05:50 -08:00
Vidar Holen
b4390414ef
Fix remaining FIXME for tty error color output.
2015-12-06 12:48:53 -08:00
Vidar Holen
d00ca0c283
Fix/generalize message for SC2070.
2015-12-05 17:29:06 -08:00
Vidar Holen
8bc98d89a7
Let SC2094 ignore echo/printf/sponge.
2015-12-05 16:50:11 -08:00
Vidar Holen
c7964a7a78
Warn about missing space in 'function foo{'.
2015-12-05 16:09:44 -08:00
Vidar Holen
8ec87d6655
Mention -- as alternative to ./* in SC2035
2015-12-05 13:45:56 -08:00
Vidar Holen
c3df2bf761
Don't warn about deprecated `` when just used for comments.
2015-12-05 13:33:39 -08:00
David Haguenauer
a3d4101d6c
Add initial support for --color
2015-12-03 17:55:56 -05:00
David Haguenauer
bd359c5c0f
Delete trailing whitespace
2015-12-03 17:55:56 -05:00
Vidar Holen
1a5296659b
Properly handle escaped double quotes in quoted backtick expressions.
2015-11-01 12:30:33 -08:00
Vidar Holen
a66ee2967c
Trap warnings for kill/stop, non-XSI ints, "sig"-prefix and casing.
2015-10-31 17:36:24 -07:00
Vidar Holen
d985380f48
Consider "echo $(<file)" a bashism, and don't warn about UUOE.
2015-10-31 14:48:08 -07:00
Vidar Holen
6739c4a729
Count declare -p as a variable reference.
2015-10-31 14:16:45 -07:00
Vidar Holen
7415c9dcb7
Warn about non-posix function names like x-y
2015-10-31 13:53:17 -07:00
Vidar Holen
48fd793581
Update getFlag function to also return non-flags.
2015-10-27 22:07:29 -07:00
Vidar Holen
ffb9578a98
Support parsing quoted test operators, and also warn about unicode dashes.
2015-10-17 16:33:21 -07:00
Vidar Holen
630f20e888
Count ~/ as dynamic for resolving source paths.
2015-10-17 10:50:07 -07:00
Vidar Holen
8f5f91f041
Warn about ]] with no corresponding [[.
2015-10-17 10:31:14 -07:00
Vidar Holen
8d9d4533c3
Don't trigger constant checks for -ot/-ef/-nt
2015-10-17 09:28:29 -07:00
Vidar Holen
4ce916ec1d
Include bash builtin arrays in SC2128.
2015-10-14 12:31:09 -07:00
Vidar Holen
b9cb040128
Account for dereferencing for numerical ops in [[ ]].
2015-10-14 11:11:17 -07:00
Vidar Holen
2488be7298
Don't warn about undefined HOSTNAME if it's being assigned.
2015-10-14 09:21:21 -07:00
Vidar Holen
d01b59a827
Don't warn about empty assignments when at end of command.
2015-10-13 12:16:39 -07:00
Vidar Holen
f77821625c
Add dash as a first class supported shell.
2015-10-13 11:37:50 -07:00
Vidar Holen
1eece5b2ee
Add warning about local in sh or not in bash functions.
2015-10-10 20:48:52 -07:00
Vidar Holen
58d45e3fa4
Warn about non-posix %q and flags for printf.
2015-10-10 20:14:17 -07:00
Vidar Holen
5aaa1a7d9a
Split SC2165 messages into separate codes (2167).
2015-10-10 19:26:14 -07:00
Vidar Holen
55692926b9
Don't consider {} and {a} brace expansions.
2015-10-03 21:12:28 -07:00
Vidar Holen
4172722167
Don't warn about quoted rhs of =~ when not a regex.
2015-10-03 15:21:57 -07:00
Vidar Holen
485593da2c
Don't warn about disrespected quotes in ${#var}.
2015-10-01 18:56:45 -07:00
Vidar Holen
1181c6b3af
Warn about ${!var} in POSIX mode.
2015-10-01 18:34:09 -07:00
Vidar Holen
ee181cfc43
Don't warn about comparisons when redirecting stderr for test.
2015-10-01 18:19:47 -07:00
Vidar Holen
5467a0f1d9
Account for set -o errexit and #!/bin/bash -e for unchecked cd.
2015-09-28 18:52:03 -07:00
Vidar Holen
3fc77d94ec
Warn about [ -n foo ] when foo is entirely constant.
2015-09-28 18:46:32 -07:00
Vidar Holen
0f00de80fd
Support {n}>&1 named file descriptors.
2015-09-05 09:48:34 -07:00
Vidar Holen
c808c9b6fe
End here doc tokens on < and >.
2015-09-03 20:58:21 -07:00
Vidar Holen
bf9297e2a5
Parse ksh ${ ..; } expansions.
2015-09-03 20:26:02 -07:00
Vidar Holen
7f547cc0ec
Warn when using unescaped parens in eval.
2015-09-02 21:11:39 -07:00
Vidar Holen
01c27dc96a
Parse double arithmetic negation, i.e. (( !!a ));
2015-09-02 19:31:22 -07:00
Matteo Beniamino
f054e2e2cc
Added FlexibleContexts extension in Parser.hs to fix compilation.
2015-08-23 10:55:18 +02:00
Vidar Holen
090e09e4ca
Support nested trinary expressions.
2015-08-22 14:20:20 -07:00
Vidar Holen
10276c878d
Don't consider ${!os*} reference of 'os'
2015-08-22 13:55:17 -07:00
Vidar Holen
ae4aea4530
Adds support for a SHELLCHECK_OPTS environment variable.
2015-08-22 13:15:10 -07:00
Vidar Holen
d0029ae1d4
Ignore === in assignments, and add a special warning 1097 for ==.
2015-08-22 12:20:03 -07:00
Vidar Holen
eea7bc326e
Improved parsing error expected messages.
2015-08-22 11:06:49 -07:00
Vidar Holen
73cd2cdd6f
Also warn about missing 'then' before 'else'
2015-08-19 20:27:14 -07:00
Vidar Holen
a01862bc12
Adds a #shellcheck source=file directive to override source statements.
2015-08-19 19:09:55 -07:00
Vidar Holen
ccb6bf1ed5
Don't warn about uuoc for cat -n and similar.
2015-08-16 18:26:38 -07:00
Vidar Holen
f31c8bd3a3
Preliminary support for sourced files.
2015-08-16 17:18:51 -07:00
Vidar Holen
0dd61b65d8
Moved the various AST convenience functions to a separate module.
2015-08-16 12:53:23 -07:00
Vidar Holen
07747b30fb
Warn about undefined behavior of test -a and -o.
2015-08-15 22:42:06 -07:00
Vidar Holen
26d16eb8ad
Avoid new 2129 warnings when disabling the first one.
2015-08-15 14:23:45 -07:00
Vidar Holen
54b2d14847
Stop 2164 and 2103 about 'cd foo || exit' from overlapping.
2015-08-15 14:10:40 -07:00
Vidar Holen
f653362b18
Warn about bashism [^bar].
2015-08-15 13:50:09 -07:00
Vidar Holen
f85441add9
Removed unused pragma.
2015-08-15 13:25:34 -07:00
Vidar Holen
67cfcfd206
Separated formatters into multiple files.
2015-08-15 12:51:13 -07:00
Vidar Holen
72eeafe002
Some cleanup to make room for future improvements.
2015-08-15 09:34:19 -07:00
Vidar Holen
6d9e8472e6
Less confusing message for SC2140
2015-08-02 19:55:47 -07:00
Vidar Holen
cbda90eeb5
Warn about zero-width spaces.
2015-07-25 13:59:00 -07:00
Chad Brewbaker
95cfd87589
cleanup
2015-07-23 12:51:38 -05:00
Vidar Holen
0a1beb883f
Don't warn about unquoted :+ expansions.
2015-07-19 12:28:31 -07:00
Vidar Holen
83adcba88e
Warn when nested loops have conflicting variable names.
2015-07-19 11:30:57 -07:00
Vidar Holen
35fb5073f4
Fixed cd foo; bar; cd -; check not trigger on top level
2015-07-18 19:58:09 -07:00
Vidar Holen
de59c3586b
Warn about 'cd' when not used as part of a conditional
2015-07-18 19:37:58 -07:00
Vidar Holen
8894333556
Warn about 'export $foo'
2015-07-18 13:23:36 -07:00
Vidar Holen
b1843c520f
Warn when using read without -r
2015-07-18 12:30:08 -07:00
Vidar Holen
d406ba9950
Special case messages for [ true ] and false/0/1
2015-07-18 11:47:28 -07:00
Vidar Holen
7929a9dbba
Makes literal check work for args to -z and -n
2015-07-18 11:08:42 -07:00
Vidar Holen
7e84ad031f
Warn about [ foo ] when "foo" is non-constant with constant parts.
2015-07-18 09:56:58 -07:00
Vidar Holen
7eef12102b
Make 2077 point to the = in [ foo=bar ]
2015-07-18 09:22:52 -07:00
Vidar Holen
0522a5f0bd
Allow escaped linefeeds to break lines in $(())
2015-07-15 09:01:29 -07:00
Vidar Holen
3d83b87c9a
Added copyright notice to individual source files.
2015-06-30 19:21:12 -07:00
Vidar Holen
349dfdab35
Relicense from AGPL v3 to GPL v3.
2015-06-20 09:52:07 -07:00
Vidar Holen
1ab29ddb39
Made SC2082 indirection message more sh friendly.
2015-06-14 17:20:52 -07:00
Vidar Holen
09b7788412
Don't consider declare -Ffp assignments.
2015-06-14 16:51:18 -07:00
Vidar Holen
ef2135f3aa
Don't warn about unpassed parameters if used in child functions.
2015-06-14 16:14:05 -07:00
Vidar Holen
d10c3b2709
Don't warn about 2>&1 > foo if piping or capturing.
2015-06-14 15:39:44 -07:00
Vidar Holen
ca37794b7c
Allow empty scripts, $()s and <()s. Also improves related error messages.
2015-06-14 14:30:11 -07:00
Vidar Holen
8b8b48ef55
Make quoted tilde message suggest $HOME instead.
2015-06-14 10:24:40 -07:00
Vidar Holen
65ab8c8ecb
Account for brace expansion in SC2115 (catastrophic rm).
2015-06-07 13:02:49 -07:00
Vidar Holen
3a041954d1
Don't warn about a&&b||c if c == printf
2015-05-24 12:41:54 -07:00
Vidar Holen
828378cdff
Warn about injecting filenames into sh -c strings with find.
2015-05-23 13:03:07 -07:00
Vidar Holen
509cda4dcf
Count mapfile/readarray as variable assignment
2015-05-10 13:13:42 -07:00
Vidar Holen
6076f0b1da
Parse variables and subexpressions in brace expansions
2015-05-10 12:49:50 -07:00
Vidar Holen
1d26c280d6
Warn when failing to quote here strings.
2015-05-09 12:12:11 -07:00
Vidar Holen
c785d43e34
Fixed unquoted $@ warning message.
2015-05-09 12:07:33 -07:00
Vidar Holen
4c3e731445
Don't warn about a/b*c for ksh or when b == c
2015-05-09 11:48:08 -07:00
Vidar Holen
3940462da3
Warn about glob matching in [[ ]] for != as well as ==.
2015-05-09 11:34:34 -07:00
Vidar Holen
bb7ef5834b
Warn on unindexed references for implicit arrays.
2015-04-21 19:19:15 -07:00
Vidar Holen
081751c1b5
Fixed case sensitivity in 'trap' bashism test
2015-04-05 10:33:54 -07:00
Vidar Holen
cc86aab3f1
Added multiple new checks from checkbashisms
2015-04-05 10:25:00 -07:00
Vidar Holen
9f1f00cdd1
Switch from regex-compat to regex-tdfa
2015-04-04 16:26:28 -07:00
Vidar Holen
93debd3556
Add expect to list of known non-shells
2015-04-02 19:22:47 -07:00
Vidar Holen
47b971c582
Declared FlexibleContexts for GHC 7.10
2015-03-31 21:59:03 -07:00
Vidar Holen
3daa47c0f2
Remove zsh specific variables.
2015-03-28 11:55:25 -07:00
Vidar Holen
ed56a837c3
Killed Zsh support
2015-03-20 10:03:56 -07:00
Vidar Holen
80cf5d9852
Include [] as glob chars to warn about quoting for
2015-03-19 18:29:47 -07:00
Vidar Holen
8e554ae3d4
Fix SC2143 to not warn about pgrep and other quasi-greps.
2015-03-12 08:31:49 -07:00
Vidar Holen
0a80188363
Fix parsing of ((a?b:c))
2015-03-08 18:11:23 -07:00
Vidar Holen
0e1a64b6ba
Warn about export/declare/local masking return values.
2015-03-08 14:17:43 -07:00
Vidar Holen
0a2cf208c8
Fixed quoted ~ warning to only trigger for ~/
2015-03-07 23:48:01 -08:00
Vidar Holen
dcc10bbdf6
Fixed accidentally ignored undef warning for ${#foo}
2015-03-07 23:01:34 -08:00
Vidar Holen
2c2e41952f
Improved missing shebang message.
2015-03-07 22:37:49 -08:00
Vidar Holen
0d74140650
Multiple wrong assignment warning fixes
2015-03-07 20:15:04 -08:00
Vidar Holen
955ad60823
Fixed parser errors not being excluded by -e
2015-03-01 13:44:57 -08:00
Vidar Holen
2573332d77
Fixed edge cases for braced reference extractor.
2015-03-01 13:44:18 -08:00
Vidar Holen
00c470f323
Improve SC2143 error message
2015-03-01 12:20:37 -08:00
Vidar Holen
63188282e9
Add warning for vars that are referenced but not assigned.
2015-02-28 18:43:22 -08:00
Vidar Holen
61b4b65184
Warn about obviously bad return values, like -1 or "foo"
2015-02-14 12:03:38 -08:00
Vidar Holen
39b2bf4378
Don't warn about modifying $@ or $IFS in a subshell
2015-02-14 10:43:49 -08:00
Vidar Holen
2fe117728d
Count [[ -v foo ]] (and -R) as a variable reference
2015-02-13 20:10:18 -08:00
Vidar Holen
33c78b7c95
Track variables created through coproc.
2015-01-27 10:11:17 -08:00
Vidar Holen
a485482979
Add support for coproc
2015-01-26 22:21:04 -08:00
Vidar Holen
895d83afc5
s/deprecated/legacy/ for backtick warnings.
2015-01-25 12:27:49 -08:00
Vidar Holen
39bc011757
Rewrote catastrophic rm detection, now simpler and more robust.
2015-01-25 12:18:06 -08:00
Vidar Holen
c9aa133282
Fix pattern matching error in z=$(echo)
2015-01-02 18:06:10 -08:00
Vidar Holen
7b70500d41
Suppress SC2140 if the user just prefers quoting single items at a time.
2014-12-23 19:47:55 -08:00
Vidar Holen
8bed447411
Warn when trying to find -exec "shell command" \;
2014-11-22 12:16:30 -08:00
Vidar Holen
22710bf4d8
Fixed $! counting as a positional parameter reference.
2014-11-22 11:21:54 -08:00
Vidar Holen
a354685ab1
Warn about redirecting to globs in sh
2014-11-22 10:50:38 -08:00
Vidar Holen
a8ff7a02fd
Fix $10 warning triggering for $?!, and also warn about $arr[index].
2014-11-22 10:09:19 -08:00
Vidar Holen
d9dd58bec8
Warn about 'for $var in values'.
2014-11-09 16:22:01 -08:00
Vidar Holen
af1bb93aba
Better warnings for repeated ;;s
2014-11-09 14:33:36 -08:00
Vidar Holen
e909c8ac42
More lenient line feed handling in test expressions.
2014-11-08 15:35:06 -08:00
Veres Lajos
97f3834852
typo fixes - https://github.com/vlajos/misspell_fixer
2014-11-04 21:55:42 +00:00