From 7963eeab9d51b5210f21de13eaf2140805287cef Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Mon, 16 Mar 2020 21:36:41 -0700 Subject: [PATCH] Include shebang in AST traversal (fixes #1858) --- src/ShellCheck/AST.hs | 6 +++++- src/ShellCheck/Checker.hs | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ShellCheck/AST.hs b/src/ShellCheck/AST.hs index d8faec6..6b13282 100644 --- a/src/ShellCheck/AST.hs +++ b/src/ShellCheck/AST.hs @@ -249,7 +249,11 @@ analyze f g i = list <- mapM round group return $ T_ForArithmetic id x y z list - delve (T_Script id s l) = dl l $ T_Script id s + delve (T_Script id shebang list) = do + newShebang <- round shebang + newList <- roundAll list + return $ T_Script id newShebang newList + delve (T_Function id a b name body) = d1 body $ T_Function id a b name delve (T_Condition id typ token) = d1 token $ T_Condition id typ delve (T_Extglob id str l) = dl l $ T_Extglob id str diff --git a/src/ShellCheck/Checker.hs b/src/ShellCheck/Checker.hs index 60280ec..120f7d8 100644 --- a/src/ShellCheck/Checker.hs +++ b/src/ShellCheck/Checker.hs @@ -288,6 +288,13 @@ prop_deducesTypeFromExtension2 = result == [2079] csScript = "(( 3.14 ))" } +prop_canDisableShebangWarning = null $ result + where + result = checkWithSpec [] emptyCheckSpec { + csFilename = "file.sh", + csScript = "#shellcheck disable=SC2148\nfoo" + } + prop_shExtensionDoesntMatter = result == [2148] where result = checkWithSpec [] emptyCheckSpec {