diff --git a/ShellCheck/Checks/Commands.hs b/ShellCheck/Checks/Commands.hs index e51f794..64d73da 100644 --- a/ShellCheck/Checks/Commands.hs +++ b/ShellCheck/Checks/Commands.hs @@ -82,6 +82,7 @@ commandChecks = [ ,checkTimeParameters ,checkTimedCommand ,checkLocalScope + ,checkDeprecatedTempfile ] buildCommandMap :: [CommandCheck] -> Map.Map CommandName (Token -> Analysis) @@ -659,5 +660,10 @@ checkLocalScope = CommandCheck (Exactly "local") $ \t -> unless (any isFunction path) $ err (getId t) 2168 "'local' is only valid in functions." +prop_checkDeprecatedTempfile1 = verify checkDeprecatedTempfile "var=$(tempfile)" +prop_checkDeprecatedTempfile2 = verifyNot checkDeprecatedTempfile "tempfile=$(mktemp)" +checkDeprecatedTempfile = CommandCheck (Basename "tempfile") $ + \t -> warn (getId t) 2186 "tempfile is deprecated. Use mktemp instead." + return [] runTests = $( [| $(forAllProperties) (quickCheckWithResult (stdArgs { maxSuccess = 1 }) ) |])