Vidar Holen
0e1a64b6ba
Warn about export/declare/local masking return values.
2015-03-08 14:17:43 -07:00
Vidar Holen
0a2cf208c8
Fixed quoted ~ warning to only trigger for ~/
2015-03-07 23:48:01 -08:00
Vidar Holen
0d74140650
Multiple wrong assignment warning fixes
2015-03-07 20:15:04 -08:00
Vidar Holen
955ad60823
Fixed parser errors not being excluded by -e
2015-03-01 13:44:57 -08:00
Vidar Holen
33c78b7c95
Track variables created through coproc.
2015-01-27 10:11:17 -08:00
Vidar Holen
a485482979
Add support for coproc
2015-01-26 22:21:04 -08:00
Vidar Holen
a8ff7a02fd
Fix $10 warning triggering for $?!, and also warn about $arr[index].
2014-11-22 10:09:19 -08:00
Vidar Holen
d9dd58bec8
Warn about 'for $var in values'.
2014-11-09 16:22:01 -08:00
Vidar Holen
af1bb93aba
Better warnings for repeated ;;s
2014-11-09 14:33:36 -08:00
Vidar Holen
e909c8ac42
More lenient line feed handling in test expressions.
2014-11-08 15:35:06 -08:00
Vidar Holen
9dadce96c0
Improve messages for missing 'then' statements.
2014-10-12 16:17:03 -07:00
Vidar Holen
a69e27b774
Warn about swapped !# in the shebang.
2014-10-11 12:35:45 -07:00
Vidar Holen
2f3533fff6
Improve warnings for $ in (()). Also improves array subscripts.
2014-08-16 17:08:57 -07:00
Vidar Holen
8494509150
Warn about missing shebangs.
2014-08-09 17:32:42 -07:00
Vidar Holen
8ba1f2fdf2
Better handling of directories and inaccessible files.
2014-08-08 09:36:17 -07:00
Vidar Holen
b000b05507
Parse empty and comment-only backtick expansions.
2014-07-26 12:07:59 -07:00
Vidar Holen
b9784cbcc0
Parse let arguments as arithmetic expressions.
2014-06-22 13:23:44 -07:00
Vidar Holen
1a3f6aadaf
Support indices in array declarations
2014-06-22 10:35:45 -07:00
Vidar Holen
0fd351404f
Allow escape sequences in here documents.
2014-06-16 14:18:29 -07:00
Vidar Holen
c11c0196d5
Fixed broken parsing of <( in arithmetics
2014-06-10 00:42:07 -07:00
Vidar Holen
fc421adb45
Reworked arithmetics to allow composite terms
2014-06-07 22:09:34 -07:00
Vidar Holen
3dd592a02a
Support ;& and ;;& in case statements
2014-06-07 12:23:42 -07:00
Rodrigo Setti
5dac723593
Collection of HLint fixes
...
http://community.haskell.org/~ndm/hlint/
2014-05-31 22:20:49 +00:00
Rodrigo Setti
0a9ed917e7
Test Suite in Cabal (cabal test)
...
Please run using "cabal test --show-details=streaming", there's a known
issue about this that was fixed in the latest version of cabal:
https://github.com/haskell/cabal/issues/1810
2014-05-31 01:30:23 +00:00
Vidar Holen
fdce0116da
Fix parsing {} in regex
2014-05-13 19:20:34 -07:00
Vidar Holen
c4181d45d2
Warn about suspicious IFS, such as IFS="\n"
2014-05-10 15:37:02 -07:00
Vidar Holen
680f838c63
Warn about literal, unquoted {/}
2014-05-10 14:07:53 -07:00
Vidar Holen
fd909eeca0
Fix parsing of &;; in case statements
2014-05-10 11:29:30 -07:00
Vidar Holen
c566efd442
Warn about UTF-8 BOMs in scripts.
2014-05-03 10:37:12 -07:00
Vidar Holen
47c220d59c
Removed noisy SC1000 about unescaped $s
2014-05-03 10:19:01 -07:00
Vidar Holen
033ce6d941
Allow zsh =(..) process substitution
2014-05-02 20:36:38 -07:00
Vidar Holen
0a263579e0
Support for zsh short form for loops and anonymous functions
2014-04-13 13:37:37 -07:00
Vidar Holen
67f4a0d6eb
Accept and warn about capitalization in keywords.
2014-03-15 16:08:33 -07:00
Vidar Holen
632c1614a1
Added support for |&
2014-03-01 10:05:43 -08:00
Vidar Holen
d07294810b
Allow \n before and after ||/&& in [[ ]]
2014-02-28 18:46:10 -08:00
Vidar Holen
661091a9da
Added better message for SC1007, for 'var= value'
2014-02-12 18:26:41 -08:00
Vidar Holen
2ec60c2627
Added double prime to list of unicode quotes.
2014-02-08 14:15:04 -08:00
Vidar Holen
8b4909b238
Improve warnings for missing quotes.
2014-02-08 14:10:45 -08:00
Vidar Holen
968e34e002
Parse forward ticks (acute accents) just like backticks and warn.
2014-02-08 09:50:20 -08:00
Vidar Holen
c5141b77bf
Fixed parser not accepting `` in arithmetic contex
2014-02-03 16:45:48 -08:00
Vidar Holen
075d58ee90
Replaced parser error for 'function' with shell-aware check.
2014-02-02 13:39:44 -08:00
Vidar Holen
76a39f254b
Refactoring, 25% speedup.
...
* Checks now use Writer monad instead of State
* Parser no longer emits notes unrelated to parsing.
* All checks are now passed a parameter value, containing shell type,
map from notes to parents and such. This eliminates recalculation
and removes the need for a special group of parent examining checks.
2014-02-02 04:59:17 -08:00
Vidar Holen
e8634a3c27
Removed duplicate check for [[ a == b + 1 ]]
2014-02-01 20:45:44 -08:00
Vidar Holen
9ae776530b
Check for [[ i + 1 = 2 ]]
2014-01-27 22:47:48 -08:00
Vidar Holen
4262c4b1bf
Allow {} in arithmetic for loops
2014-01-26 12:44:51 -08:00
Vidar Holen
74ea5eaeec
Parse but warn about "else if"
2014-01-25 14:12:31 -08:00
Vidar Holen
43ed5e748d
Allow '# shellcheck disable=SC1234' to ignore by code.
2014-01-16 23:08:56 -08:00
Vidar Holen
5b4729d940
Parser: allow subshell function definitions
2013-12-30 09:50:14 -08:00
Vidar Holen
8c00850134
Minor performance tweaks (~10% improvement)
2013-12-15 18:43:34 -08:00
Vidar Holen
95ebe1cd07
Fixed parser error for '..; done| ..'
2013-12-15 14:39:47 -08:00
Vidar Holen
da51b14789
Parser: accept here doc token strings more liberally
2013-12-14 15:20:15 -08:00
Vidar Holen
7be8485b8b
Fixed parsing of 'time' in front of compound commands
2013-12-14 14:44:47 -08:00
Vidar Holen
a4d36ba0d2
Warn about while read f; do ssh "$f"; done
2013-11-29 23:05:41 -08:00
Vidar Holen
d4bc0f6e10
Don't require separator before do in 'for i do ..'
2013-11-29 16:22:37 -08:00
Vidar Holen
1011ae7b3c
Fixed incorrect parsing of [ foo -a -f bar ]
2013-11-24 18:49:49 -08:00
Vidar Holen
a793e09bab
Added hint to suggest missing ;; in case
2013-11-17 14:41:55 -08:00
Vidar Holen
d8b5d6393a
\" should not be treated specially in `backticks`
2013-11-12 18:27:18 -08:00
Vidar Holen
e5e08df1d9
Numbered messages
2013-11-10 10:55:46 -08:00
Vidar Holen
83c3dd3418
Accept ./? in function names
2013-11-03 13:58:06 -08:00
Vidar Holen
71bc26aefa
Fixed parsing of | outside of groups in =~ regex
2013-11-03 13:13:24 -08:00
Vidar Holen
6d0bfcf37a
Fixed parser accepting spaces after here doc token
2013-10-27 16:02:27 -07:00
Vidar Holen
e0bbb89d00
Fixed parser bug where }> wasn't recognized as Rbrace
2013-10-27 15:36:47 -07:00
Vidar Holen
b1af7bb8f2
Fixed parser error for 'for ((;;)) ; do'
2013-10-11 20:03:55 -07:00
Vidar Holen
b439f02b8e
Improved assignment parsing: track indices and += vs =
2013-10-06 14:44:43 -07:00
Vidar Holen
710a28c572
Revert "Fixed parsing for 'eval var=(values)'", because it fails for 'eval $x=foo'
...
This reverts commit 34e69556b1
.
2013-09-29 21:35:20 -07:00
Vidar Holen
702d57b655
Warn about unicode quotes
2013-09-29 21:22:42 -07:00
Vidar Holen
34e69556b1
Fixed parsing for 'eval var=(values)'
2013-09-29 21:00:29 -07:00
Vidar Holen
5a959bc340
Fix parser errors for unclosed $( in here docs
2013-09-21 16:27:17 -07:00
Vidar Holen
7630136d6c
Move command and variable lists to ShellCheck.Data.
2013-09-12 18:50:33 -07:00
Vidar Holen
dacb8c597f
Fixed a series of extglob parsing oddities and edge cases
2013-09-04 13:02:30 -07:00
Vidar Holen
bb49cf8e65
Parse the contents of unquoted here documents
2013-08-31 17:03:15 -07:00
Vidar Holen
de1fa61560
Warn about client side expansion in ssh strings/heredocs.
2013-08-03 21:19:32 -07:00
Vidar Holen
07b1fd6f44
Allow :+- in function names. :(){ :|:;};:, anyone?
2013-08-03 20:22:32 -07:00
Vidar Holen
4d9f8ebb39
Allow lack of spaces/separators in for((;;))do ..
2013-07-23 23:30:48 -07:00
Vidar Holen
5ba382d79b
Fixed parsing of IFS= read as single assignment
2013-07-23 22:12:13 -07:00
Vidar Holen
6974497f45
Don't warn for \. (regex) and \, (printf "%q" output)
2013-07-23 21:35:00 -07:00
Vidar Holen
d6dab3bd05
Don't warn about IFS= read ..
2013-07-23 21:23:33 -07:00
Vidar Holen
9393e4405b
Fixed accidental warning for $".."
2013-07-11 09:32:13 -07:00
Vidar Holen
e84d5abc3e
Support for recursive regex groups
2013-07-10 23:47:25 -07:00
Vidar Holen
0a2314cdcd
Also allow array syntax for args to readonly.
2013-07-10 23:15:08 -07:00
Vidar Holen
2214889a36
Improved messages for missing spaces in [..]
2013-07-10 23:03:42 -07:00
Vidar Holen
5a3493740e
Warn for [ \( foo = bar\) ]
2013-07-10 18:05:51 -07:00
Vidar Holen
e6f2ee1f88
Don't try to parse $'..' in ""
2013-07-10 17:41:38 -07:00
Vidar Holen
636c6a9336
Parser support for export a=(b c). Also declare/local/typeset.
2013-07-09 23:32:13 -07:00
Vidar Holen
d04262c70f
Fixed broken recursive backtick expansion.
2013-07-09 21:53:15 -07:00
Vidar Holen
599beff5b1
Moved shebang verification to parser
2013-07-08 09:39:54 -07:00
Vidar Holen
2500b2cce6
Fixed parser warning for \{foo,bar\}
2013-07-06 15:36:06 -07:00
Vidar Holen
56e0119db1
Fixed some incorrect warnings for PS1 escapes.
2013-07-05 19:12:13 -07:00
Vidar Holen
76c5af2973
Parser support for $[..], plus deprecation warning.
2013-07-05 09:42:08 -07:00
Vidar Holen
10b5e44ad0
Improved help for missing here doc terminator.
2013-07-04 14:19:54 -07:00
Vidar Holen
dbd4ff109c
Mention second level structure being parsed when error.
2013-07-04 13:07:27 -07:00
Vidar Holen
b060370b92
Added and improved parse warnings for missing spaces.
2013-07-03 16:37:58 -07:00
Vidar Holen
651bab73de
Fixed crash for ''foo due to unsafe 'last'
2013-07-01 09:14:33 -07:00
Vidar Holen
f820298b6e
Added recursive parsing support for `..`
2013-06-26 21:04:39 -07:00
Vidar Holen
438c4ec572
Fixed up warnings for \r, and added warnings for
2013-06-21 01:22:11 -07:00
Vidar Holen
5794f3d390
Fixed parsing of "test$"
2013-06-21 00:33:20 -07:00
Vidar Holen
092073d0b3
Fixed parsing for case foo \n in ..
2013-06-20 23:57:08 -07:00
Vidar Holen
3b246f94a3
Fixed parsing for cmd &> file
2013-06-18 20:08:33 -07:00
Vidar Holen
564e3c5413
Don't start comments for #s in the middle of words. Thanks Mitch!
2013-06-07 18:32:59 -07:00
Vidar Holen
103b037921
Fixed parsing for [] in =~ regex
2013-05-31 14:22:13 -07:00
Vidar Holen
1dbbc51f86
Improved regex parsing. To think [[ f =~ f( ]] )* ]] is valid..
2013-05-28 21:32:15 -07:00
Vidar Holen
7ae5351de3
Added warning for foo$n=42
2013-05-23 21:31:29 -07:00
Vidar Holen
034cfee66e
Fixed glob parsing for [[:class:]] and [~.:]. Thanks to dualbus!
2013-05-23 20:44:28 -07:00
Vidar Holen
92d0ae8b6b
Allow [ foo \> bar ], while warning for [[ .. \> .. ]] and [ 1 \< 2 ]
2013-05-14 15:59:58 -07:00
Vidar Holen
ce0b313b93
Better messages for ignored backslashes like 'echo foo\n'
2013-05-13 09:15:45 -07:00
Vidar Holen
6abb5fe72b
Quick hack to read and discard array indexing in arithmetic contexts
2013-03-22 16:42:40 -07:00
Vidar Holen
899d9eb445
Warn against open parenthesis in normal words
2013-02-05 20:35:39 -08:00
Vidar Holen
e64698dc78
Improved empty then/elif/else clause errors
2013-01-26 17:21:34 -08:00
Vidar Holen
0c66cfb936
Add warnings for empty then clauses
2013-01-23 17:15:55 -08:00
Vidar Holen
844a07afa0
Added warning for empty do clauses
2013-01-23 17:12:05 -08:00
Vidar Holen
7c18ecee4f
Parse single/double quoted literals in arithmetic context
2013-01-14 21:52:09 -08:00
Vidar Holen
b517ad9e19
select loops and bases in arithmetic contexts
2012-12-31 18:48:57 -08:00
Vidar Holen
6d2e739e09
Hacked in place warnings for if [[ 1 ]] then :; fi
2012-12-02 23:47:17 -08:00
Vidar Holen
6e263e6b76
Parsing support for array indices in assignments.
2012-12-02 21:29:03 -08:00
Vidar Holen
b765ed1a44
Removed superfluous messages for [ cow]
2012-12-02 20:40:01 -08:00
Vidar Holen
d3a4c9852f
Read any -* as binary/unary op, and warn on unknown.
2012-12-02 14:50:31 -08:00
Vidar Holen
35b8d58c3e
Fixed warning for [[ greplol ]]
2012-12-02 14:15:50 -08:00
Vidar Holen
55a4c3c44f
Added check for bashisms with #!/bin/sh
2012-12-02 14:08:50 -08:00
Vidar Holen
1a4301ea98
Added check for "#!/usr/bin/env bash -x"
2012-12-02 12:40:46 -08:00
Vidar Holen
3c2d9557e0
Parse the shebang separately
2012-12-02 12:02:29 -08:00
Vidar Holen
b144700ae0
Support for arithmetic for loops.
2012-12-01 12:56:35 -08:00
Vidar Holen
a73d898bd8
Added warning for { if :; then :; fi > cow }
2012-11-30 15:16:20 -08:00
Vidar Holen
24f91ae711
Revert "Added warning for fi }, and not for ) }"
...
This reverts commit ea4176691d
.
I must have had some crack for breakfast.
2012-11-30 10:24:35 -08:00
Vidar Holen
ea4176691d
Added warning for fi }, and not for ) }
2012-11-30 09:25:49 -08:00
Vidar Holen
f7be39cb5f
Added better malformed parsing messages
2012-11-29 22:26:45 -08:00
Vidar Holen
b718e5f108
Parser help with globs, fixed message for grep foo\*
2012-11-29 19:20:44 -08:00
Vidar Holen
089537afed
Added parsing support for $'..', which also fixed bug in `\``
2012-11-28 20:56:27 -08:00
Vidar Holen
beafb9284a
Added support for process substitution
2012-11-28 20:39:27 -08:00
Vidar Holen
8cf899300d
Added error for cat << (foo)
2012-11-28 19:21:11 -08:00
Vidar Holen
5d408875f1
Added [[ op -v and -R
2012-11-28 14:44:51 -08:00
Vidar Holen
01d3e5e858
Fixed unquoted error for [ ! $(foo) ]
2012-11-27 23:59:08 -08:00
Vidar Holen
55ea991da7
Misspelled 'deprecated'
2012-11-27 23:42:50 -08:00
Vidar Holen
396541f3c2
Stop treating backticks as literals.
2012-11-27 23:11:59 -08:00
Vidar Holen
0cbbee7b89
Added slightly better ${..} parsing
2012-11-27 23:05:39 -08:00
Vidar Holen
2b2ee0a897
Suggest IFS='' as style for assigning empty vars.
2012-11-27 20:27:07 -08:00
Vidar Holen
e2a6ffbea4
Added check for 'foo(a,b) {', support 'function foo {'
2012-11-27 19:45:32 -08:00
Vidar Holen
807e56355d
Punctuated message.
2012-11-27 01:48:51 -08:00
Vidar Holen
bb7e844125
Added better message for missing ]/]]
2012-11-27 01:28:42 -08:00
Vidar Holen
1aeff4f955
Added more robust a=cat foo | grep bar checker
2012-11-27 01:05:32 -08:00
Vidar Holen
2052adffef
Even more robust then/fi/do/done feedback
2012-11-27 00:08:24 -08:00
Vidar Holen
8cf02e60af
More robust fi/done mixup reporting
2012-11-26 23:50:00 -08:00
Vidar Holen
ef332217a1
Check for if[ foo ]
2012-11-26 22:49:23 -08:00
Vidar Holen
34690ad3db
Added more helpful message for 'if [ grep .. ]'
2012-11-26 22:23:40 -08:00
Vidar Holen
211c923f8b
Replaced common commands from /bin to posix utility list
2012-11-26 21:22:20 -08:00
Vidar Holen
648090af31
Added warnings for then/fi/do/done treated literally.
2012-11-25 10:49:21 -08:00
Vidar Holen
21262399cc
Added a check for spurious }s
2012-11-25 00:42:59 -08:00
Vidar Holen
aae87fc030
Added better space/glob checks
2012-11-24 14:41:17 -08:00
Vidar Holen
807ecbd038
Added extglob support that actually works
2012-11-19 23:20:01 -08:00
Vidar Holen
3f3ca2789b
Moved Eq Token instance to AST where it belongs
2012-11-19 22:32:55 -08:00
Vidar Holen
0e4f8a763f
Added extglob support
2012-11-19 22:27:44 -08:00