Let SC2094 ignore echo/printf/sponge.
This commit is contained in:
parent
c7964a7a78
commit
8bc98d89a7
|
@ -896,6 +896,8 @@ prop_checkRedirectToSame2 = verify checkRedirectToSame "cat lol | sed -e 's/a/b/
|
||||||
prop_checkRedirectToSame3 = verifyNot checkRedirectToSame "cat lol | sed -e 's/a/b/g' > foo.bar && mv foo.bar lol"
|
prop_checkRedirectToSame3 = verifyNot checkRedirectToSame "cat lol | sed -e 's/a/b/g' > foo.bar && mv foo.bar lol"
|
||||||
prop_checkRedirectToSame4 = verifyNot checkRedirectToSame "foo /dev/null > /dev/null"
|
prop_checkRedirectToSame4 = verifyNot checkRedirectToSame "foo /dev/null > /dev/null"
|
||||||
prop_checkRedirectToSame5 = verifyNot checkRedirectToSame "foo > bar 2> bar"
|
prop_checkRedirectToSame5 = verifyNot checkRedirectToSame "foo > bar 2> bar"
|
||||||
|
prop_checkRedirectToSame6 = verifyNot checkRedirectToSame "echo foo > foo"
|
||||||
|
prop_checkRedirectToSame7 = verifyNot checkRedirectToSame "sed 's/foo/bar/g' file | sponge file"
|
||||||
checkRedirectToSame params s@(T_Pipeline _ _ list) =
|
checkRedirectToSame params s@(T_Pipeline _ _ list) =
|
||||||
mapM_ (\l -> (mapM_ (\x -> doAnalysis (checkOccurrences x) l) (getAllRedirs list))) list
|
mapM_ (\l -> (mapM_ (\x -> doAnalysis (checkOccurrences x) l) (getAllRedirs list))) list
|
||||||
where
|
where
|
||||||
|
@ -905,7 +907,8 @@ checkRedirectToSame params s@(T_Pipeline _ _ list) =
|
||||||
when (exceptId /= newId
|
when (exceptId /= newId
|
||||||
&& x == y
|
&& x == y
|
||||||
&& not (isOutput t && isOutput u)
|
&& not (isOutput t && isOutput u)
|
||||||
&& not (special t)) $ do
|
&& not (special t)
|
||||||
|
&& not (any isHarmlessCommand [t,u])) $ do
|
||||||
addComment $ note newId
|
addComment $ note newId
|
||||||
addComment $ note exceptId
|
addComment $ note exceptId
|
||||||
checkOccurrences _ _ = return ()
|
checkOccurrences _ _ = return ()
|
||||||
|
@ -928,6 +931,11 @@ checkRedirectToSame params s@(T_Pipeline _ _ list) =
|
||||||
T_DGREAT _ -> True
|
T_DGREAT _ -> True
|
||||||
_ -> False
|
_ -> False
|
||||||
_ -> False
|
_ -> False
|
||||||
|
isHarmlessCommand arg = fromMaybe False $ do
|
||||||
|
cmd <- getClosestCommand (parentMap params) arg
|
||||||
|
name <- getCommandBasename cmd
|
||||||
|
return $ name `elem` ["echo", "printf", "sponge"]
|
||||||
|
|
||||||
checkRedirectToSame _ _ = return ()
|
checkRedirectToSame _ _ = return ()
|
||||||
|
|
||||||
|
|
||||||
|
@ -1104,9 +1112,7 @@ checkSingleQuotedVariables params t@(T_SingleQuoted id s) =
|
||||||
commandName = fromMaybe "" $ do
|
commandName = fromMaybe "" $ do
|
||||||
cmd <- getClosestCommand parents t
|
cmd <- getClosestCommand parents t
|
||||||
name <- getCommandBasename cmd
|
name <- getCommandBasename cmd
|
||||||
if name == "find"
|
return $ if name == "find" then getFindCommand cmd else name
|
||||||
then return $ getFindCommand cmd
|
|
||||||
else return name
|
|
||||||
|
|
||||||
isProbablyOk =
|
isProbablyOk =
|
||||||
any isOkAssignment (take 3 $ getPath parents t)
|
any isOkAssignment (take 3 $ getPath parents t)
|
||||||
|
|
Loading…
Reference in New Issue