Vidar Holen
87481dce25
Warn about printf hello world and printf "%s %s" foo
2016-09-06 21:16:59 -07:00
Vidar Holen
a90b6d14b3
Count b as a reference in ${a:b}
2016-09-05 14:01:53 -07:00
Vidar Holen
5a46eeb09a
Allow `#inline comments` without SC2046.
2016-09-05 12:38:35 -07:00
Vidar Holen
47a7065a7a
Add style note for 'mycmd; if [ $? -eq 0 ]'.
2016-08-28 20:54:08 -07:00
Vidar Holen
13a2070a32
Support multidimensional KSH arrays and warn in Bash.
2016-08-06 18:40:08 -07:00
Vidar Holen
6a71ff6f46
Don't suggest removing $ in (( ${COLUMNS-80} ))
2016-07-30 10:42:33 -07:00
Vidar Holen
36263fb3f5
s/range/class/ when warning about tr '[abc]'
2016-07-05 08:51:40 -07:00
Vidar Holen
6dc419bbf5
Improve warning for 'else if'.
2016-07-02 15:40:29 -07:00
Vidar Holen
7af3470a91
Improve parser errors when reparsing array indices.
2016-07-01 22:06:50 -07:00
Vidar Holen
42f7479fb8
Don't warn about missing shebang when using directives.
2016-07-01 22:02:06 -07:00
Vidar Holen
50084c06c5
Don't warn when $(seq) is used unquoted.
2016-07-01 21:26:46 -07:00
Vidar Holen
e3bef9dc97
Warn about (( 1 -lt 2 ))
2016-07-01 20:33:07 -07:00
Vidar Holen
6c1abb2dee
Performance: make readDollarExpr fail early if no $
2016-06-30 10:01:03 -07:00
Vidar Holen
43c26061b9
Improve parsing for ambiguous $((foo) ) and ((foo) ).
2016-06-26 22:13:48 -07:00
Vidar Holen
07fd5724b8
Recognize declare -A statements when value is inlined.
2016-06-26 14:57:52 -07:00
Vidar Holen
eb2472ada8
Merge branch 'master' of github.com:koalaman/shellcheck
2016-06-26 14:40:43 -07:00
Vidar Holen
3e5ecaa262
Parse indices of associative arrays properly
2016-06-26 14:39:49 -07:00
Russell Harmon
eaa319ec57
Emit the end line in the JSON.
...
This handles the case where the end line is not on the same line as the
start line when using the new end column feature.
2016-06-18 15:06:28 -07:00
Russell Harmon
7f5f5b7fb5
Make SC1035 emit a proper end column
...
Example JSON output:
```
$ shellcheck -s bash -f json /dev/stdin <<< "[[0 -eq 1 ]]"
[{"file":"/tmp/zshNCNwPz","line":1,"column":1,"endColumn":3,"level":"error","code":1035,"message":"You need a space after the [[ and before the ]]."}]
```
2016-06-18 14:59:47 -07:00
Russell Harmon
856d57f7d8
PositionedComment and ParseNote contains end cols.
...
This change makes PositionedComment and ParseNote contain end columns.
It additionally modifies the JSON formatter to show the end column in an
"endColumn" property. No modifications to the messages shown by any
other formatter have been made.
Currently, all checks set the end column to the start column. It should
now be possible however to start setting the end column in the parser.
Additional work is needed to set the end column during AST analysis.
2016-06-18 14:58:00 -07:00
Vidar Holen
85e69f86eb
In (( x = y )), logic to not reference x also grabbed y
2016-05-24 09:12:47 -07:00
Vidar Holen
1d04754b37
Don't warn about a && b || c in if/while/until.
2016-05-14 17:14:32 -07:00
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