Supanat Pothivarakorn
7fb399528c
Allow read -t 0
to not require -r flag
...
since it has specific purpose for checking only
2019-10-02 22:34:43 +07:00
Vidar Holen
de9ab4e6ef
Fix glob range duplicate warning in [!!] ( fixes #1706 )
2019-09-28 14:03:11 -07:00
Vidar Holen
e01c470598
Suggest quoting case patterns, as for SC2053 ( fixes #1682 )
2019-09-08 20:08:43 -07:00
Vidar Holen
788cf17076
Fix bad advice for SC2251 ( fixes #1588 )
2019-07-04 19:10:14 -07:00
Vidar Holen
78b8e76066
Also mention globbing in SC2206 ( fixes #1626 )
2019-07-04 17:43:18 -07:00
Vidar Holen
380221a02c
Recognize read -ra foo
as arrays ( fixes #1636 )
2019-07-03 20:40:41 -07:00
Vidar Holen
be1f1c1ab7
Don't count 'readonly x' as a reference to x ( fixes #1573 )
2019-07-02 20:58:08 -07:00
Vidar Holen
3e3e4fd0cd
Avoid defining flags for non-literal parameters
2019-07-01 23:22:09 -07:00
Vidar Holen
561075ea79
Merge branch 'shflags' of https://github.com/yetamrra/shellcheck into yetamrra-shflags
2019-07-01 20:00:28 -07:00
Vidar Holen
eeb7ea01c9
Allow SC2103 to be silenced ( fixes #1591 )
2019-06-30 16:36:45 -07:00
Vidar Holen
3116ed3ae5
Filter warnings by annotations in unit tests
2019-06-30 16:36:03 -07:00
Benjamin Gordon
f6ba500d6b
Add support for basic shflags semantics
...
The shflags command-line flags library creates variables at runtime
with a few well-defined functions. This causes shellcheck to spit out
lots of warnings about unassigned variables, as well as miss warnings
about unused flag variables.
We can address this with two parts:
1. Pretend that the shflags global variables are predefined like other
shell variables so that shellcheck doesn't expect users to set them.
2. Treat DEFINE_string, DEFINE_int, etc. as new commands that create
variables, similar to the existing read, local, mapfile, etc.
Part 1 can theoretically be addresssed without this by following sourced
files, but that doesn't help if people are otherwise not following
external sources.
The new behavior is on by default, similar to automatic bats test
behavior.
Addresses #1597
2019-06-25 12:14:54 -06:00
Vidar Holen
5242e384a1
Fix error spans for shebang warnings ( fixes #1620 )
2019-06-23 13:49:08 -07:00
Vidar Holen
7e77bfae49
Improve message for SC2055
2019-06-23 13:48:43 -07:00
Vidar Holen
9059024de6
Merge pull request #1592 from hugopeixoto/fix/SC2016-false-positive
...
SC2016: Don't trigger when using empty backticks
2019-06-19 19:55:34 -07:00
Vidar Holen
9f0ef5983a
Optionally check for unassigned uppercase variables
2019-06-02 10:29:04 -07:00
Vidar Holen
3e7c2bfec0
Warn about [ $a != x ] || [ $a != y ]
2019-06-02 09:26:54 -07:00
Hugo Peixoto
07ffcb626e
SC2016: Don't trigger when using empty backticks
...
When using '``' or '```', it should not suggest using double quotes.
2019-05-27 11:03:24 +01:00
Vidar Holen
95b1185882
Inform about ineffectual ! on commands ( fixes #1531 )
2019-05-22 17:14:28 -07:00
Vidar Holen
8efbecd64a
Don't suggest removing braces from $((${x+1})) ( fixes #1533 )
2019-05-19 15:29:47 -07:00
Vidar Holen
52a9d90e1a
Merge pull request #1580 from virgilwashere/copyright
...
Update Copyright to year 2019; README linting
2019-05-19 12:03:15 -07:00
Vidar Holen
861b63aa77
Specify 'variable' in require-braces
2019-05-14 18:48:41 -07:00
Benjamin Gordon
64c9c83cc8
SC2250: New optional check for braces around variable references
...
Always using braces makes it harder to accidentally change a variable by
pasting other text next to it, but the warning is off by default because
it's definitely a style preference. Omit special and positional
variables from the check because appending additional characters to them
already doesn't change parsing.
2019-05-14 11:01:38 -06:00
Benjamin Gordon
aa3b709b5d
Track whether braces were present in T_DollarBraced
...
References of the form $var and ${var} both map to the same structure in
the AST, which prevents any later analysis functions from distinguishing
them. In preparation for adding checks that need this info, add a Bool
to T_DollarBraced that tracks whether the braces were seen at parsing
time and update all references so that this change is a no-op.
2019-05-14 11:01:38 -06:00
Virgil
ea05271fa3
📝 Update Copyright to year 2019 and Markdown linting
...
- [x] 📝 Update Copyright to year 2019
- [x] 📝 MD009/no-trailing-spaces: Trailing spaces [Expected: 0 or 2; Actual: 1]
- [x] 📝 MD034/no-bare-urls: Bare URL used
- [ ] 📝 ~MD004/ul-style: Unordered list style [Expected: dash; Actual: asterisk]~
- [ ] ~add missing TOC entries~
2019-05-14 20:12:34 +10:00
Vidar Holen
50116e8aee
Don't suggest [[..]] for sh in SC2081 ( fixes #1562 )
2019-05-13 20:45:53 -07:00
Vidar Holen
5fb1da6814
Replace verbose checks with optional checks
2019-05-12 19:14:04 -07:00
Vidar Holen
a3cd5979a2
Update message for SC2171
2019-05-04 12:54:59 -07:00
Vidar Holen
37b24cc129
Don't warn about "a"b"c" in =~ regex ( fixes #1565 )
2019-05-04 12:18:45 -07:00
Vidar Holen
9470b9dc31
Don't mention arrays in SC2089 in sh/dash ( fixes #1014 )
2019-04-27 16:22:01 -07:00
Vidar Holen
bf1003eae3
Auto-disable SC2119 when disabling SC2120 ( fixes #703 )
2019-04-27 15:20:07 -07:00
Vidar Holen
b824294961
Limit SC2032 to likely command args ( fixes #1537 )
2019-04-14 20:58:01 -07:00
Vidar Holen
5b7354918f
SC2249: When verbose, warn about missing default case ( fixes #997 )
2019-04-14 16:58:17 -07:00
Vidar Holen
b76c0a8221
SC2248: Warn about unquoted variables without special chars
2019-04-13 20:19:13 -07:00
Vidar Holen
c860b74505
Set SC2243/SC2244 level to "verbose"
2019-04-13 13:40:18 -07:00
Vidar Holen
f514f5f735
Warn about flipped $ and " in $"(cmd)" ( fixes #1517 )
2019-03-20 22:10:04 -07:00
Tito Sacchi
bd19ab4fa9
Fix issues #896 and #433 : printf -v and arrays
2019-02-24 09:45:31 +01:00
Vidar Holen
d4d219affd
Don't warn that cd ../..
and similar can fail in SC2164
2019-01-21 16:55:01 -08:00
Vidar Holen
489c3a4ddf
Fix SC2164 always saying 'cd' even when using 'pushd'
2019-01-21 16:55:01 -08:00
Vidar Holen
a621eba6d3
Merge pull request #1456 from contivero/issue-667
...
Silence SC2103 when using 'set -e' (fixes #667 )
2019-01-20 14:54:29 -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
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
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
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-
6debd59f02
Add context to case pattern warnings
...
https://github.com/koalaman/shellcheck/issues/1039
2018-12-31 18:52:30 -08:00