Vidar Holen
437f73c001
Merge branch 'iss1369-shell-from-file-extension' of https://github.com/jabberabbe/shellcheck
2019-01-20 12:50:06 -08:00
Vidar Holen
f187382a0c
Add bats support
...
This is motivated by the fact that the popularity of bats is increasing
since the creation of bats-core/bats-core.
The code is a cherry-pick of koalaman/shellcheck/bats branch.
Fix koalaman/shellcheck#417 .
2019-01-20 14:59:37 +01:00
Gandalf-
661be056f1
Issue 824 grep fixed strings and SC2063
...
Issue https://github.com/koalaman/shellcheck/issues/824
Fix up to original change to include '--fixed-strings' in the grep +
regex special cases.
2019-01-19 08:49:26 -08:00
Tito Sacchi
9f45dc4c8b
Not determine the shell from `.sh` extension
...
See discussion on issue #1369 for details.
2019-01-18 09:21:07 +01:00
Cristian Adrián Ontivero
8e31e86cc4
Check trap flags under dash & POSIX sh ( fixes #1461 )
2019-01-16 08:44:41 +01:00
Vidar Holen
c6c615217b
Allow specifying that flags should not be checked for support.
...
This was motivated by the fact that `-a` was missing from Dash's
long list.
2019-01-15 19:50:23 -08:00
Cristian Adrián Ontivero
3107a1bae0
Check umask flags under dash & POSIX sh ( fixes #1459 )
2019-01-15 08:24:23 +01:00
Tito Sacchi
1e6a30905a
Make ShellCheck not emit warnings about the shebang if the shell
...
type is determined from the extension
2019-01-14 14:32:25 +01:00
Tito Sacchi
a4b9cec9f0
Fix #1369 (Use file extension to detect shell)
...
The precedence order that is used to determine the shell
is the following:
1. ShellCheck directive
2. Shebang
3. File extension
A new field `asFallbackShell` has been
added to the record type `AnalysisSpec`.
2019-01-14 14:32:25 +01:00
Cristian Adrián Ontivero
c3a56659f4
Check cd flags under dash & POSIX sh ( fixes #1457 )
2019-01-14 08:18:17 +01:00
Vidar Holen
e0a4241baa
Warn if a shebang's interpreter ends in / ( fixes #373 )
2019-01-13 17:32:25 -08:00
Vidar Holen
1835ebd3a0
SC2245: Warn that Ksh [ -f * ] only applies to first ( Fixes #1452 )
2019-01-13 16:41:08 -08:00
Cristian Adrián Ontivero
b34f4c1f4b
Silence SC2103 when using 'set -e' ( fixes #667 )
2019-01-13 16:20:41 +01:00
Cristian Adrián Ontivero
3760e7945f
Check readonly flags in dash/POSIX sh ( fixes #1448 )
2019-01-10 11:05:37 +01:00
Vidar Holen
fcdd6055df
Add new replacement format to the JSON
2019-01-09 18:35:36 -08:00
Vidar Holen
fd2beaadfa
Make Fixer responsible for realigning tab stops
2019-01-09 18:08:59 -08:00
Vidar Holen
df7f00eaed
Remove duplicate `pathTo` and unused `replaceMultiLines`
2019-01-09 17:51:43 -08:00
Vidar Holen
e45b679d58
Merge pull request #1445 from Gandalf-/issue_1318_single_comma_array
...
Issue 1318 single comma array delimiter
2019-01-09 17:42:35 -08:00
Gandalf-
263401cfcb
Issue 1318 single comma array delimiter
...
Issue https://github.com/koalaman/shellcheck/issues/1318
The case in which a single comma, with no spaces, used in an array
assignment is now caught for SC2054.
2019-01-08 19:56:34 -08:00
Vidar Holen
0e21f91c07
Merge pull request #1433 from contivero/fix-export-p
...
Fix 'export -p' being undefined under POSIX sh
2019-01-08 19:33:03 -08:00
Vidar Holen
4ecdc10599
Merge branch 'shellcheck_sed_herestring_130' of https://github.com/Gandalf-/shellcheck
2019-01-08 19:19:44 -08:00
Vidar Holen
baa4d2e555
Let checkGrepRe only parse flags once
2019-01-08 19:06:00 -08:00
Vidar Holen
26c55750cf
Merge branch 'issue_1404_grep_globs' of https://github.com/Gandalf-/shellcheck
2019-01-08 18:53:51 -08:00
Vidar Holen
9c42d43e90
Merge branch 'sc2093-exec-in-loops' of https://github.com/jabberabbe/shellcheck
2019-01-08 18:31:59 -08:00
Vidar Holen
434b904746
Process replacements according to AST depth ( fixes #1431 )
2019-01-08 18:25:37 -08:00
Tito Sacchi
ab2b0e11a3
Fix #1340 (SC2093 about removing "exec" should trigger in loops)
2019-01-08 20:20:26 +01:00
Gandalf-
4a2b2c7396
Issue 1404 grep glob false positives
...
https://github.com/koalaman/shellcheck/issues/1404
Some grep flags support globs; these are now all checked prevent false
positives.
2019-01-06 17:45:29 -08:00
Vidar Holen
98266a1878
Merge branch 'issue_1039_case_pattern_context' of https://github.com/Gandalf-/shellcheck
2019-01-01 16:50:59 -08:00
Vidar Holen
6138206ce5
Merge branch 'autofix-tab' of https://github.com/ngzhian/shellcheck
2019-01-01 13:06:20 -08:00
Gandalf-
6debd59f02
Add context to case pattern warnings
...
https://github.com/koalaman/shellcheck/issues/1039
2018-12-31 18:52:30 -08:00
Gandalf-
9425654a42
Expand echo + sed style warning to herestrings
...
https://github.com/koalaman/shellcheck/issues/130
2018-12-31 15:33:37 -08:00
Ng Zhi An
461be74976
Realign virtual tabs when applying fix
...
Fix an off-by-one error, in the case that is commented `should never happen`.
It happens when the end of a range is the at the end of a line.
In that case we should update the real column count (probably just by +1)
instead of returning it.
I modified makeNonVirtual to use a helper, realign, that works on
Ranged. That way we can share the code to realign a PositionedComment
and also a Replacement.
Fixes #1420
2018-12-29 17:16:29 +08:00
Vidar Holen
73822c3588
Allow SC2243 and SC2244 to trigger with quotes, add fix
2018-12-28 19:02:06 -08:00
Cristian Adrián Ontivero
29dedbdc9c
Fix 'export -p' being undefined under POSIX sh
...
Fixes #1432
2018-12-28 21:23:49 -03:00
Vidar Holen
f6bc009331
Merge branch '1416-encourage-n' of https://github.com/ngzhian/shellcheck into ngzhian-1416-encourage-n
2018-12-28 15:56:15 -08:00
Cristian Adrián Ontivero
73a41cdd2f
Check jobs flags in dash/POSIX sh ( fixes #1429 )
2018-12-28 10:04:19 -03:00
Vidar Holen
1b4c486748
Merge pull request #1426 from ngzhian/dash-1406
...
Update supported ulimit flags for dash
2018-12-27 12:19:30 -08:00
Ng Zhi An
95a8cf93c9
Add check for ambiguous nullary test
...
Given an input like `if [[ $(a) ]]; then ...`, this is a implicit `-n` test,
so it works like `if [[ -n $(a) ]]; then ...`. Users might confuse this for
a check for the exit code of the command a, which should be tested with:
if a; then
...
We warn the user to be more explicity and specifity the `-n`.
Fixes #1416
2018-12-25 17:14:21 +08:00
Ng Zhi An
bd04af0769
Update supported ulimit flags for dash
...
Values are retrieved from https://linux.die.net/man/1/dash , search for
ulimit.
Fixes #1406
2018-12-25 09:33:58 +08:00
Vidar Holen
9acc8fcb53
Fix semigroup incompatibility
2018-12-23 11:08:48 -08:00
Vidar Holen
897f019353
Move Ranged definition to Fixer to avoid overpromising
2018-12-22 10:04:00 -08:00
Ng Zhi An
0636e7023c
Fix applying multiple fixes per line
...
Fixes #1421
2018-12-21 14:34:03 +08:00
Vidar Holen
08ca1ee6e9
Remove unnecessary Regex constraint
2018-12-17 20:15:39 -08:00
Vidar Holen
ecd61bfc68
Merge pull request #1376 from ngzhian/autofix
...
Add method to apply a multi-line replacement
2018-12-17 17:24:59 -08:00
Ng Zhi An
a8d88dfe98
Fix calculation of changed lines
2018-12-17 00:20:50 -08:00
Ng Zhi An
7d2c519d64
Remove spurious new line in fix message
2018-12-17 00:20:50 -08:00
Ng Zhi An
3403f8d75b
Fix bug in overlap check
2018-12-17 00:20:50 -08:00
Ng Zhi An
408a3b99d8
Remove overlaps before applying replacements
2018-12-17 00:20:50 -08:00
Ng Zhi An
bc111141f8
Move fix application logic to separate module
2018-12-17 00:20:50 -08:00
Ng Zhi An
3471ad45b1
Smarter sorting and application of fix to handle multiple replacements
2018-12-17 00:20:50 -08:00
Ng Zhi An
d5ba41035b
Add method to apply a multi-line replacement
2018-12-16 21:53:48 -08:00
Vidar Holen
88aef838f1
SC1068 (var = x) now alternatively suggests quoting ( fixes #1412 )
2018-12-16 15:45:52 -08:00
Vidar Holen
138080bdc7
Fix infinite loop on annotations for SC2188 ( fixes #1413 )
2018-12-16 14:42:19 -08:00
Vidar Holen
5b3f17c29d
Allow tests to access token positions for fixes
2018-12-16 13:17:59 -08:00
Vidar Holen
eb588f62f6
Enable autofix support. It's still preliminary.
2018-12-09 15:01:08 -08:00
Vidar Holen
bcd13614eb
Improve Fix memory usage
2018-12-09 15:01:08 -08:00
Vidar Holen
a8376a09a9
Minor renaming and output fixes
2018-12-09 15:01:08 -08:00
Ng Zhi An
5ed89d2241
Change definition of Replacement, add ToJSON instance for it
2018-12-09 15:01:08 -08:00
Ng Zhi An
4a87d2a3de
Expose token positions in params, use that to construct fixes
2018-12-09 15:01:08 -08:00
Ng Zhi An
41613babd9
Prototype fix
2018-12-09 15:01:08 -08:00
Vidar Holen
66b5f13c6f
Make wiki links fit in 80 columns
2018-12-02 19:08:06 -08:00
Vidar Holen
1b207b3d43
Preemptively fix possible '-- |' breakage
2018-11-26 20:43:15 -08:00
Vidar Holen
cb76951ad2
Add warnings for 'exit' similar to 'return' ( fixes #1388 )
2018-11-24 23:05:40 -08:00
Vidar Holen
2827b35696
SC2240: Warn about `. script args..` in sh/dash ( fixes #1373 )
2018-11-07 18:04:18 -08:00
Vidar Holen
620c9c2023
Also warn about glob matching with [ a != b* ] ( fixes #1374 )
2018-11-01 04:47:44 -07:00
Vidar Holen
df0a0d41fa
Add SC1133: Warn when a line starts with |/||/&& ( fixes #1359 )
2018-10-21 17:46:46 -07:00
Vidar Holen
b815242506
Improve regex parsing ( fixes #1367 )
2018-10-21 15:25:35 -07:00
Vidar Holen
07b5aa2971
Add SC2239: shebang is not absolute path.
2018-10-17 20:38:21 -07:00
Vidar Holen
f7b82658f4
Add $# to list of variables not containing spaces ( fixes #1362 )
2018-10-17 09:00:52 -07:00
Vidar Holen
e0e46e979a
Add wiki links to output, and a -W controlling it. ( Fixes #920 )
2018-10-10 21:53:43 -07:00
Peter Simons
5f1c969546
getParentTree: avoid pattern matching in do notation
...
Pattern matching in "do" requires a MonadFail context, which we don't have in
pure code. Instead, we'll use "case-of" to bind the part of the state that
we're interested in.
2018-09-27 17:30:41 +02:00
Vidar Holen
dadfdfde97
Don't suggest subshells for cd ..; foo; cd..
2018-09-21 21:08:41 -07:00
Vidar Holen
3e2cb26119
Add SC2238 about redirections to command names
2018-09-17 17:46:49 -07:00
Vidar Holen
a06d7c1841
Merge pull request #1324 from ngzhian/679
...
Understand array variable declaration in read (fixes #679 )
2018-09-15 12:33:58 -07:00
Michael Diamond
6db392511b
Expand "rhs"; this abbreviation seems needlessly obfuscating.
2018-09-12 14:22:40 -07:00
Ng Zhi An
07f04e13ce
Understand array variable declaration in read ( fixes #679 fixes #1272 )
...
It used to only treat all trailing variables in read as varaible
declarings, but an array variable can be declared in other positions:
read -a foo -r
foo is a declared variable, and multiple such variables can be declared.
2018-09-08 09:19:02 -07:00
Vidar Holen
f0a2e688c4
Don't warn about LINENO since it's now POSIX. Fixes #644
2018-09-03 12:36:25 -07:00
Vidar Holen
3d03b0ab3b
Suggest -z/-n instead of ! -n/-z ( fixes #1326 ).
2018-08-28 20:15:54 -07:00
Vidar Holen
488d6dcb41
Improve find leading flag detection ( fixes #1312 )
2018-08-26 18:18:57 -07:00
Vidar Holen
d02a9bbcce
Account for &&/||/{}/() in SC2233&co ( fixes #1320 ).
2018-08-26 17:36:10 -07:00
Vidar Holen
932e2b3538
Merge branch 'opqaque-interface' of https://github.com/ngzhian/shellcheck into ngzhian-opqaque-interface
2018-08-18 20:32:27 -07:00
Martin Schwenke
3fe11927bb
SQUASH: --severity specifies *minimum* severity to be handled
...
Signed-off-by: Martin Schwenke <martin@meltin.net>
2018-08-18 20:05:56 -07:00
Martin Schwenke
b16da4b242
Add command-line option -S/--severity
...
Specifies the maximum severity of errors to handle. For example,
specifying "-S warning" means that errors of severity "info" and
"style" are ignored.
Signed-off-by: Martin Schwenke <martin@meltin.net>
2018-08-18 20:05:56 -07:00
Ng Zhi An
c8e0797350
Make data in Interface more opaque
2018-08-17 22:10:18 -07:00
Vidar Holen
15aaacf715
Add test for parsing bitwise not
2018-08-15 18:30:10 -07:00
Vidar Holen
5ef4229f61
Modernize SC2028 echo escape test
2018-08-07 19:31:28 -07:00
Ng Zhi An
8be76b13b9
Use regex to match special flags for printf
...
Fixes #1310
2018-08-05 22:45:24 -07:00
Vidar Holen
581be5878b
Suggest 'cat' when piping/redirecting to echo ( fixes #1292 )
2018-07-28 17:38:53 -07:00
Vidar Holen
0f835a5a2c
Don't trigger SC2222 for fallthrough case branches ( fixes #1044 )
2018-07-28 12:30:06 -07:00
Vidar Holen
4b0a35d4c9
Merge pull request #1302 from pjeby/fix949
...
Fix #949 (failing on @ in function names)
2018-07-26 21:07:48 -07:00
Vidar Holen
51e0c1be62
Use three instead of two dots in 2006 message
2018-07-26 19:59:42 -07:00
Vidar Holen
d8a32da07f
Retire SC1117 (unknown quoted escapes) due to noise
2018-07-26 19:23:53 -07:00
PJ Eby
0d1a34a291
Fix #949 (failing on @ in function names)
...
'@' was previously mentioned in 5005dc0fa1
as a
character needed to fix #909 , but was not included
in the actual change at that time.
2018-07-23 16:18:35 -04:00
Vidar Holen
5005dc0fa1
Allow directive/-s to override shebang blacklist ( fixes #974 )
2018-07-22 12:43:51 -07:00
Vidar Holen
b8ee7436e5
Add a test for 03ce3b15
2018-07-21 13:51:21 -07:00
Vidar Holen
da8e450386
Realign =s
2018-07-21 13:51:08 -07:00
Ng Zhi An
03ce3b15b6
Fix false positive when indexing into array in cond
...
Fixes #1268
2018-07-18 22:31:58 -07:00
Vidar Holen
f91b5bc270
Merge pull request #1256 from ngzhian/mv-stdin
...
Do not warn on mv -i (fixes #1251 )
2018-06-24 11:47:53 -07:00
Vidar Holen
b01f1128c7
Make SC1012 "printf '\t'" suggestion use single quotes
2018-06-24 11:47:00 -07:00
Vidar Holen
75fb4da387
Don't warn about tr '[=e=]' equivalence classes
2018-06-23 16:55:35 -07:00