Vidar Holen
1297ef46d7
Add JSON1 as a separate format, wrap result in an object
2019-06-02 10:28:37 -07:00
Vidar Holen
f4be53eb19
Warn about [ -v var ] for POSIX sh
2019-06-02 10:28:20 -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
Benjamin Gordon
0358090b3c
Refactor definition of special variables.
...
This ensures that the parser and other places that refer to special
variables can use the same list.
2019-05-14 08:57:56 -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
Benjamin Gordon
50af8aba29
Add json1 format that ignores tabs
...
The new json1 format works just like json except that it treats tabs as
single characters instead of 8-character tabstops.
The main use case is to allow editors to pass -fjson1 so that they can
consume the json output in a character-oriented way without breaking
backwards compatibility.
Also addresses #1048 .
2019-05-13 10:55:16 -06:00
Vidar Holen
5fb1da6814
Replace verbose checks with optional checks
2019-05-12 19:14:04 -07:00
Vidar Holen
58205a3573
Emit resolved rather than apparent filename for 'source' ( fixes #1579 )
2019-05-12 15:55:37 -07:00
Vidar Holen
d9e419d60f
Add support for source-path directives ( fixes #1577 )
2019-05-09 19:54:41 -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
e2e65e1350
Warn about arithmetic base conversation in sh ( fixes #1547 )
2019-04-29 18:02:44 -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
c6c12f52bd
Expand root paths into source paths
2019-04-24 18:51:24 -07:00
Pontus Andersson
af46758ff1
Add option to look for sources in alternate root paths
...
Add a new optional flag "-r|--root ROOTPATHS", where ROOTPATHS is a
colon separated list of paths, that will look for external sources in
alternate roots.
This is particular useful when the run-time environment does not fully
match the development environment. The #shellcheck source=file directive
is useful, but has its limitations in certain scenarios. Also, in many
cases the directive could be removed from scripts when the root flag is
used.
Script example.bash:
#!/bin/bash
source /etc/foo/config
Example usage where etc/foo/config exists in skel/foo:
# shellcheck -x -r skel/foo:skel/core example.bash
2019-04-22 17:54:42 +02: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
9652ccfdbd
Add a verbose mode: `-S verbose`
2019-04-13 13:16:41 -07:00
Vidar Holen
f514f5f735
Warn about flipped $ and " in $"(cmd)" ( fixes #1517 )
2019-03-20 22:10:04 -07:00
Vidar Holen
c53c8a5ead
Allow using 'source -- file' ( fixes #1518 )
2019-03-17 19:37:35 -07:00
Vidar Holen
581bcc3907
Add support for `.shellcheckrc` files
2019-03-03 18:57:13 -08:00
Vidar Holen
293c3b27b8
Continue on parse errors in backticks ( fixes #1475 )
2019-03-03 13:37:32 -08:00
Vidar Holen
05e657e130
Merge pull request #1499 from jabberabbe/iss896-printf-v-arrays
...
Fix issues #896 and #433 : printf -v and arrays
2019-03-02 12:05:50 -08:00
Tito Sacchi
bd19ab4fa9
Fix issues #896 and #433 : printf -v and arrays
2019-02-24 09:45:31 +01:00
Cristian Adrián Ontivero
d3f6e045e2
Check wait flags in dash & POSIX sh
...
Flags for the wait builtin are undefined under both POSIX sh and dash.
Bash though, accepts [-fn].
2019-02-10 12:44:22 +01:00
Vidar Holen
d984f8cbe7
Don't look at 'set' options after a non-literal.
2019-02-08 22:36:22 -08:00
Cristian Adrián Ontivero
acef53be9c
Check set flags under dash & POSIX sh ( fixes #990 )
...
The set builtin accepts certain flags, and some longer synonyms (for
instance set -e is the same as set -o errexit) under POSIX sh. This
makes ShellCheck warn if any of the used flags and options are
undefined when targeting POSIX sh.
This fixes #990 , while adding general flag-support checking for set in
the process.
2019-02-03 17:27:36 +01:00
Vidar Holen
2ea2293154
Update SC1008 to suggest using directive.
2019-01-27 15:02:15 -08:00
Cristian Adrián Ontivero
a669e1684b
Check hash flags under dash and POSIX sh
...
Flags for the hash builtin other than [-r] are undefined under POSIX sh.
Dash also accepts [-v], while bash adds [-l] [-p filename] [-dt] aside
from [-r].
2019-01-27 08:22:37 +01:00
Vidar Holen
420d913bbf
Merge branch 'issue_1330_unsupported_echo_flags' of https://github.com/Gandalf-/shellcheck
2019-01-26 20:16:34 -08:00
Vidar Holen
fb7ac3f57e
Merge pull request #1474 from contivero/unset-flags
...
Check unset flags under dash and POSIX sh
2019-01-26 20:11:03 -08:00
Gandalf-
112a7d8b9b
Issue 1330 unsupported echo flags
...
Issue https://github.com/koalaman/shellcheck/issues/1330
Addresses false positives when quoted arguments to echo begin with what
looks like a flag. Now, warn only when the first argument is a
recognized echo flag when flags are unsupported.
2019-01-24 19:00:19 -08:00
Cristian Adrián Ontivero
31c5601c5e
Check unset flags under dash and POSIX sh
...
The only acceptable flags for the unset builtin under POSIX sh and dash
are [-fv]. Bash though, accepts [-n] too. This commits makes shellcheck
warn about this.
2019-01-23 06:35:08 +01:00
Vidar Holen
2737496b3a
Fix grammatical error in comments
2019-01-22 19:47:40 -08:00
Vidar Holen
a404efab65
Merge branch 'issue_837_opposite_of_exclude_option' of https://github.com/Gandalf-/shellcheck
2019-01-22 19:39:55 -08:00
Vidar Holen
3c94d8b3eb
Merge branch 'issue_1393_quiet_flag' of https://github.com/Gandalf-/shellcheck
2019-01-22 19:15:28 -08:00
Gandalf-
a89403f09b
Issue 1393 quiet flag
...
Issue https://github.com/koalaman/shellcheck/issues/1393
Provide '-q' and '--quiet' flags that suppress all normal output, but keep the
return status, similar to 'grep -q'.
2019-01-21 18:25:41 -08: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
Cristian Adrián Ontivero
63a259e5be
Check type flags under dash and POSIX sh ( fixes #1471 )
...
There are no flags for the type builtin defined under POSIX sh, nor does
dash define any. Bash, however, allows [-aftpP]. We check this now under
POSIX and dash.
2019-01-21 19:49:14 +01:00
Gandalf-
59c47f2266
Issue 837 flag to include only certain warnings
...
Issue https://github.com/koalaman/shellcheck/issues/837
Add an --include option, which creates a whitelist of warnings to report
on, the opposite of --exclude.
2019-01-20 16:42:27 -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
978bfdd5da
Merge pull request #1462 from contivero/trap-flags
...
Check trap flags under dash & POSIX sh (fixes #1461 )
2019-01-20 14:48:01 -08:00
Vidar Holen
a03d94c0b2
Merge pull request #1468 from Gandalf-/issue_824_grep_fixed_strings
...
Issue 824 grep fixed strings and SC2063
2019-01-20 14:06:40 -08:00
Vidar Holen
e1fe9be7af
Fix minor details in new Bats support
2019-01-20 14:02:42 -08:00
Vidar Holen
c97cb8cf54
Merge branch 'bats-support' of https://github.com/damienrg/shellcheck
2019-01-20 13:35:12 -08:00
Vidar Holen
a504ca6b57
Add some unit tests for extension detection
2019-01-20 13:24:31 -08:00
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