Vidar Holen
60c0be98b6
Merge branch 'fix-3164' of github.com:e-kwsm/shellcheck into e-kwsm-fix-3164
2025-07-28 14:08:25 -07:00
Vidar Holen
bbd5d211cf
Merge pull request #3256 from e-kwsm/SC2143
...
feat(SC2143): add grep variants for compressed data
2025-07-28 14:06:08 -07:00
Eisuke Kawashima
aba0ffb8d3
feat(SC2016,SC2032,SC2033): check doas and run0 similarly to sudo
...
partially address #3255
2025-07-20 08:13:16 +09:00
Eisuke Kawashima
6e65eb7136
feat(SC2143): add grep variants for compressed data
2025-07-20 04:53:02 +09:00
Eisuke Kawashima
34cdbaa5e0
feat: avoid double negative of a binary operator in test
...
suggest `[ a != b ]` over `[ ! a = b ]` and `! [ a = b ]`, and so forth.
c.f. SC2236 and SC2237 (unary operations)
close #3164
2025-07-20 03:18:38 +09:00
Vidar Holen
23097320a4
Add support for ${| ..} expansion ( fixes #3243 )
2025-07-17 12:01:54 -07:00
Vidar Holen
c592abb984
Add unit test for #2689
2025-07-17 08:37:58 -07:00
Christopher Slycord
08329b0698
x-prefix: add support for "!=" and X (capital x)
...
Changes checkComparisonWithLeadingX to:
1) Work with the "!=" operator in addition to "=" and "==".
2) Support prefixing with "x" and "X". This is helpful since some scripts have comparisons like [ "X$var" = "X" ] and the like
2025-07-17 13:14:04 +09:00
Vidar Holen
47d358c1d4
Tighten SC2333/SC2334 to only trigger against literals.
2025-05-17 00:55:50 +00:00
Vidar Holen
ad58768563
Merge branch 'tautologically-false' of github.com:e-kwsm/shellcheck into e-kwsm-tautologically-false
2025-05-12 17:04:34 +00:00
Vidar Holen
f78714e0f6
Add ":" alongside "true" for SC2015
2025-04-11 19:14:53 -07:00
Vidar Holen
de07ec1c56
Merge branch 'ignore-sc2015-true' of github.com:Flu/shellcheck into Flu-ignore-sc2015-true
2025-04-11 19:14:15 -07:00
Vidar Holen
553a80f77a
Also ignore SC2119 for :? and :+.
2025-04-08 21:21:50 -07:00
Vidar Holen
7fc992d0dc
Suppress SC2119/SC2120 for ${1:-default} ( fixes #2023 )
2025-04-08 20:52:52 -07:00
Vidar Holen
574c6d18fb
Suggest using test -e instead of -a ( fixes #3174 ).
2025-04-08 10:23:10 -07:00
Vidar Holen
72af76f443
Supress SC2093 when execfail is set ( fixes #3178 )
2025-04-06 19:58:13 -07:00
Vidar Holen
8ff0c5be7a
Suppress SC2216 when piping to cp/mv/rm -i ( fixes #3141 ).
2025-04-06 19:27:29 -07:00
Eisuke Kawashima
4f628cbe2a
feat: check tautologically-false conditionals
...
- fix #3179 — negation of SC2055, `[ x = y -a x = z]`
- fix #3181 — negation of SC2056, `(( x == y && x == z ))`
- fix #3180 — negation of SC2252, `[ x = y ] && [ x = z ]`
2025-04-04 18:21:35 +09:00
Adrian Fluturel
cbf0b33463
Skip SC2015 when the last command is true
2025-01-07 03:24:29 +01:00
Joseph C. Sible
5adfea21ee
Use the result of the comparison directly instead of an if/else
2024-12-13 23:20:48 -05:00
Joseph C. Sible
0ecaf2b5f1
Use foldr instead of explicit recursion
2024-12-13 23:19:36 -05:00
Vidar Holen
5e3e98bcb0
Use CFG to determine use-before-define for SC2218 ( fixes #3070 )
2024-10-27 15:43:30 -07:00
Vidar Holen
88e441453b
Make SC2002 optional (useless-use-of-cat)
2024-08-31 18:31:47 -07:00
Vidar Holen
cd6fdee99b
Merge pull request #3034 from dereckson/SC2016-oc
...
Whitelist oc to avoid SC2016 false positive
2024-08-04 16:50:30 -07:00
Emil Berg
38c5ba7c79
Fix typos and trailing whitespace
2024-08-03 08:49:40 +02:00
Sébastien Santoro
2696c6472d
Whitelist oc to avoid SC2016 false positive
...
Fixes #3033 .
2024-07-31 13:33:25 +00:00
Joseph C. Sible
98b8dc0720
Use fromList instead of reimplementing it in terms of foldl
2024-07-07 01:28:06 -04:00
Joseph C. Sible
61b7e66f80
Use sets instead of maps that never use their values
2024-07-07 01:28:06 -04:00
Vidar Holen
ac8fb00504
Account for BusyBox support of [[ ]] ( fixes #2967 )
2024-05-04 16:45:52 -07:00
Vidar Holen
a13cb85f49
Fixed broken test due to bad build cache
2024-05-04 16:34:21 -07:00
Vidar Holen
a7a906e2cb
Allow SC2154 to trigger in arrays ( fixes #2970 )
2024-05-04 16:29:51 -07:00
Vidar Holen
d705716dc4
Account for annotations in SC2215. Fixes #2975 .
2024-05-04 15:22:09 -07:00
Vidar Holen
76ff702e93
Supress SC2015 about A && B || C
when B is a test.
2024-05-04 15:12:13 -07:00
Vidar Holen
4f81dbe839
Add warning about uninvoked functions, reduce repeated triggering of SC2317 ( fixes #2966 )
2024-05-04 14:35:26 -07:00
Vidar Holen
2c5155e43d
Warn about capturing the output of redirected commands.
2024-04-14 18:47:19 -07:00
Lawrence Velázquez
9cb21c8557
Recommend typeset
instead of declare
in SC2324
...
Bash has both `typeset` and `declare`, but ksh has `typeset` only.
Recommend the more portable alternative to users.
2024-03-08 18:24:08 -05:00
Vidar Holen
a7e65dca8d
Update some copyright years
2024-03-04 09:19:51 -08:00
Vidar Holen
d80fdfa9e8
Add extended-analysis directive to toggle DFA
2024-02-03 16:11:39 -08:00
Joseph C. Sible
ba86c6363c
Use maybe instead of fromMaybe and fmap
2024-01-02 14:46:07 -05:00
Joseph C. Sible
9e0fdbe431
Simplify isTransparentCommand
2023-12-31 18:13:32 -05:00
Joseph C. Sible
b7f88ec4b7
Stop building tuples that we never look at both sides of
2023-12-31 18:09:02 -05:00
Joseph C. Sible
7b0589988f
Implement isCondition in terms of foldr
2023-12-31 17:21:50 -05:00
Joseph C. Sible
71889c139a
Use a case expression instead of any and take 1
2023-12-31 16:44:21 -05:00
Joseph C. Sible
a6984cddb0
Switch then and else to remove a not
2023-12-31 16:40:18 -05:00
Joseph C. Sible
6c81505870
Use a pattern guard instead of fromJust in checkLoopKeywordScope
2023-12-31 16:26:03 -05:00
Joseph C. Sible
10afe83ce3
Use getLiteralStringDef instead of rebuilding it with fromJust
2023-12-31 16:23:45 -05:00
Joseph C. Sible
a786f996a1
Replace !!! with pattern-matching where it's easy
2023-12-31 15:55:06 -05:00
Joseph C. Sible
6e5b5401c6
Manually fuse elem and map in checkArrayValueUsedAsIndex
2023-12-31 02:31:07 -05:00
Joseph C. Sible
add49cda17
Make getPath return a NonEmpty
2023-12-31 02:12:58 -05:00
Joseph C. Sible
dedf932fe8
Use traverse instead of sequence and map
2023-12-30 13:59:15 -05:00