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
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
Vidar Holen
6869c2fa18
Merge pull request #1261 from ngzhian/1188
...
Do not warn find --help (fixes #1188 )
2018-06-23 16:07:23 -07:00
Vidar Holen
868a7be33e
Improve spans for some warnings
2018-06-17 19:19:18 -07:00
Vidar Holen
7138abff4b
Expose (some) span information in TTY output
2018-06-17 17:44:31 -07:00
Vidar Holen
9d3e79b576
Require all Ids to be constructed with a span
2018-06-16 17:33:08 -07:00
Vidar Holen
402e635f86
Warn about & followed by letters, e.g. http://foo/?a=b&c=d
2018-06-16 12:30:19 -07:00
Ng Zhi An
91cbcddd9d
Do not warn find --help ( fixes #1188 )
2018-06-14 22:40:26 -07:00
Ng Zhi An
0cc45447d3
Do not warn on mv -i ( fixes #1251 )
2018-06-13 21:39:37 -07:00
Vidar Holen
32a53f21b5
Merge pull request #1239 from ngzhian/end_column
...
End column
2018-06-13 19:29:55 -07:00
Ng Zhi An
7adeaccd11
Check popd flags for -n ( fixes #1252 )
2018-06-12 22:53:41 -07:00
Ng Zhi An
b63483d44c
Remove unused import
2018-06-12 22:50:02 -07:00
Ng Zhi An
4111ce8fde
Make end pos non-optional
2018-06-12 22:39:06 -07:00
Ng Zhi An
b9a9eb2529
Change getNextId to create a zero width span at new id
2018-06-12 22:17:35 -07:00
Ng Zhi An
e717802de1
Change usage of endPosOfStartId to startSpan and endSpan
2018-06-12 22:11:11 -07:00
Ng Zhi An
1699c9e9ba
Add api to begin and end a span of source code
2018-06-12 21:56:53 -07:00
Vidar Holen
bfc32200e2
Correctly consider $'..' a literal ( fixes #1242 )
2018-06-10 20:23:10 -07:00
Ng Zhi An
8ff35fb4af
Add end pos to readSingleQuoted
2018-06-07 23:09:59 -07:00
Ng Zhi An
29e8c0a16e
Add end pos to readDollarBraced
2018-06-07 22:25:16 -07:00
Ng Zhi An
3848788c2d
Add end pos to readDollarVariable
2018-06-07 21:55:41 -07:00
Ng Zhi An
0c459ae2cb
Add function to set end pos of start id
2018-06-07 21:55:41 -07:00
Ng Zhi An
e496b413bd
Remove usage of withNextId
2018-06-07 21:55:41 -07:00
Ng Zhi An
48ac654a93
Merge end pos map into start pos map
2018-06-07 21:55:41 -07:00
Russell Harmon
4470fe715c
Support emitting a correct end column on SC2086
...
This does the necessary work to emit end columns on AST analyses. SC2086
is made to emit a correct end column as an illustrative example.
For example:
```
$ shellcheck -s bash -f json /dev/stdin <<< 'echo $1'
[{"file":"/dev/stdin","line":1,"endLine":1,"column":6,"endColumn":8,"level":"info","code":2086,"message":"Double quote to prevent globbing and word splitting."}]
```
This change deprecates the parser's getNextId and getNextIdAt, replacing
it with a new withNextId function. This function has the type signature:
withNextId :: Monad m => ParsecT s UserState (SCBase m) (Id -> b) -> ParsecT s UserState (SCBase m) b
Specifically, it should be used to wrap read* functions and will pass in
a newly generated Id which should be used to represent that node.
Sub-parsers will need their own call to withNextId in order to get a
unique Id.
In doing this, withNextId can now track both the entry and exit position
of every read* parser which uses it, enabling the tracking of end
columns throughout the application.
2018-06-07 21:55:41 -07:00
Vidar Holen
b5e5d249c4
Merge pull request #1237 from ngzhian/1234
...
Check if builtin cd is called
2018-05-27 18:34:18 -07:00
Vidar Holen
efffc6150b
Warn about string operations on $@/$* ( fixes #1236 )
2018-05-27 12:53:01 -07:00
Ng Zhi An
cb4a0c0250
Check if builtin cd is called
...
Fixes #1234
2018-05-27 11:42:37 -07:00
Vidar Holen
135cf5932f
Parse here docs as per spec ( fixes #1050 )
2018-05-26 21:01:18 -07:00
Vidar Holen
467dfe07b6
Add a unit test and separate ids for 884eff0c
2018-05-23 19:51:36 -07:00
Vidar Holen
d140388bea
Merge pull request #1232 from ngzhian/source-x
...
Add T_SourceCommand to wrap source commands and sourced code
2018-05-23 19:41:55 -07:00
Ng Zhi An
884eff0c36
Add T_SourceCommand to wrap source commands and sourced code
...
Fixes #1181
2018-05-22 22:43:26 -07:00
Vidar Holen
1d8047cce1
Warn about unnecessary subshells in tests
2018-05-22 22:35:37 -07:00
Vidar Holen
77546fba2f
Merge pull request #1223 from ngzhian/1124
...
Handle offset references of the form [foo]:bar (fixes #1124 )
2018-05-20 17:26:08 -07:00
Vidar Holen
4a5ee06ce4
Merge pull request #1206 from ngzhian/aeson
...
Change to aeson (fixes #1085 )
2018-05-20 17:19:20 -07:00
Ng Zhi An
4dceecb1ed
Handle offset references of the form [foo]:bar ( fixes #1124 )
2018-05-13 22:48:02 -07:00
Vidar Holen
46c10c1571
Merge branch 'master' into 1199
2018-05-13 16:55:53 -07:00
Vidar Holen
407f6a63b9
Merge branch 'master' into 1186
2018-05-13 16:47:18 -07:00
Vidar Holen
7ee7448a70
Merge pull request #1221 from ngzhian/1192
...
Assignments are okay in SC2094 (fixes #1192 )
2018-05-13 16:44:11 -07:00
Ng Zhi An
0c88fbc76d
Suppress SC2016 for git filter-branch ( fixes #196 )
2018-05-13 15:18:55 -07:00
Ng Zhi An
b3362f1dc3
Assignments are okay in SC2094 ( fixes #1192 )
2018-05-13 15:17:32 -07:00
Ng Zhi An
2c6bc43614
Add Data.Monoid
2018-05-13 11:44:21 -07:00
Vidar Holen
235bf6605f
Merge pull request #1205 from ngzhian/remove-unused
...
Remove unused code
2018-05-12 19:15:42 -07:00
Vidar Holen
7029a713c7
Merge pull request #1207 from ngzhian/1184
...
When given a %* format string, expect one more argument
2018-05-12 18:50:23 -07:00
Vidar Holen
cf608dc2f6
Parse FD move operations like 2>&1- correctly. Fixes #1180 .
2018-05-12 18:30:35 -07:00
Vidar Holen
bca2ad4e18
Don't think declare -x -F var is used ( fixes #1209 ).
2018-05-12 17:34:23 -07:00
Vidar Holen
719e1854e5
Clarify 'export' suggestion in SC2034 (unused vars).
2018-05-11 21:39:54 -07:00
Ng Zhi An
20ad7dc8de
Add unset to list of commands exempt from 2016
...
Fixes #1186
2018-05-06 16:45:57 -07:00
Ng Zhi An
f84859ab90
When given a %* format string, expect one more argument
...
Fixes #1184
2018-05-06 16:39:51 -07:00
Ng Zhi An
08235a1cb2
Change to aeson ( fixes #1085 )
...
Adds bytestring as a dependency for putStrLn encoded values.
2018-05-06 16:07:53 -07:00
Ng Zhi An
728922d2b8
Remove unused code
2018-05-06 15:24:34 -07:00
Ng Zhi An
a953dd3454
Whitelist rename for SC2016 ( fixes #1199 )
2018-05-06 10:28:17 -07:00
Vidar Holen
ef6a5b97b9
Refactor sudo checks into CommandChecks
2018-04-30 22:59:23 -07:00
Stefan Knudsen
5adfce72e1
Warn about invalid arguments to sudo
2018-04-29 01:16:31 -04:00
Vidar Holen
bb4ce86fab
Account for array index in SC2154 ${var:?} ( fixes #1166 )
2018-04-28 12:09:54 -07:00
Vidar Holen
7ec2fa2d3e
Remove 'nice' from list of non-reading commands ( fixes #1169 )
2018-04-28 11:39:42 -07:00
Vidar Holen
5481ccd7f7
Warn about elseif or elsif as command names ( fixes #1177 )
2018-04-27 22:23:37 -07:00
Vidar Holen
a1d8947297
Fix broken test stripping
2018-04-22 14:57:43 -07:00
Vidar Holen
ce7658ed86
Merge pull request #1168 from vmchale/master
...
Bump to ghc 8.4.1
2018-04-22 14:10:25 -07:00
Vidar Holen
32af2783f0
Allow stripping unit tests
2018-04-02 21:14:23 -07:00
Vanessa McHale
08aab3c161
hlints
2018-04-02 11:48:21 -05:00
Vanessa McHale
cf39adff75
bump to latest ghc
2018-04-02 11:44:18 -05:00
Vidar Holen
08d2eef411
Whitelist docker for SC2016 about '$var'. Fixes #1161
2018-03-29 19:27:34 -07:00
Vidar Holen
4aca1ff128
Warn when printf arg count is not a multiple of format count
2018-03-28 08:57:38 -07:00
Geir Hauge
55216792c9
Consider type a valid command in sh
...
[type](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/type.html ) *is* defined by POSIX, and even the bourne shell has the `type` command.
2018-03-25 12:11:57 +02:00
Vidar Holen
764b242f1b
Suggest quoting expansions in for loop globs
2018-03-24 17:43:20 -07:00
Oleg Grenrus
cd7c077ecc
Move library into src/
2018-03-08 19:57:40 +02:00