From bee4303c323271c8d0bd26348eb045b7412e55da Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Tue, 2 Jul 2019 20:07:05 -0700 Subject: [PATCH] Add an empty Custom.hs to simplify site-specific patching --- CHANGELOG.md | 1 + ShellCheck.cabal | 1 + src/ShellCheck/Analyzer.hs | 2 ++ src/ShellCheck/Checks/Custom.hs | 21 +++++++++++++++++++++ test/shellcheck.hs | 2 ++ 5 files changed, 27 insertions(+) create mode 100644 src/ShellCheck/Checks/Custom.hs diff --git a/CHANGELOG.md b/CHANGELOG.md index dc05c04..c9834f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ to specify search paths for sourced files. - json1 format like --format=json but treats tabs as single characters - Recognize FLAGS variables created by the shflags library. +- Site-specific changes can now be made in Custom.hs for ease of patching - SC2154: Also warn about unassigned uppercase variables (optional) - SC2252: Warn about `[ $a != x ] || [ $a != y ]`, similar to SC2055 - SC2251: Inform about ineffectual ! in front of commands diff --git a/ShellCheck.cabal b/ShellCheck.cabal index 781a082..4658dd0 100644 --- a/ShellCheck.cabal +++ b/ShellCheck.cabal @@ -74,6 +74,7 @@ library ShellCheck.AnalyzerLib ShellCheck.Checker ShellCheck.Checks.Commands + ShellCheck.Checks.Custom ShellCheck.Checks.ShellSupport ShellCheck.Data ShellCheck.Fixer diff --git a/src/ShellCheck/Analyzer.hs b/src/ShellCheck/Analyzer.hs index 01440d8..33d2ae0 100644 --- a/src/ShellCheck/Analyzer.hs +++ b/src/ShellCheck/Analyzer.hs @@ -25,6 +25,7 @@ import ShellCheck.Interface import Data.List import Data.Monoid import qualified ShellCheck.Checks.Commands +import qualified ShellCheck.Checks.Custom import qualified ShellCheck.Checks.ShellSupport @@ -41,6 +42,7 @@ analyzeScript spec = newAnalysisResult { checkers params = mconcat $ map ($ params) [ ShellCheck.Checks.Commands.checker, + ShellCheck.Checks.Custom.checker, ShellCheck.Checks.ShellSupport.checker ] diff --git a/src/ShellCheck/Checks/Custom.hs b/src/ShellCheck/Checks/Custom.hs new file mode 100644 index 0000000..76ac83c --- /dev/null +++ b/src/ShellCheck/Checks/Custom.hs @@ -0,0 +1,21 @@ +{- + This empty file is provided for ease of patching in site specific checks. + However, there are no guarantees regarding compatibility between versions. +-} + +{-# LANGUAGE TemplateHaskell #-} +module ShellCheck.Checks.Custom (checker, ShellCheck.Checks.Custom.runTests) where + +import ShellCheck.AnalyzerLib +import Test.QuickCheck + +checker :: Parameters -> Checker +checker params = Checker { + perScript = const $ return (), + perToken = const $ return () + } + +prop_CustomTestsWork = True + +return [] +runTests = $quickCheckAll diff --git a/test/shellcheck.hs b/test/shellcheck.hs index d55b140..ac84116 100644 --- a/test/shellcheck.hs +++ b/test/shellcheck.hs @@ -6,6 +6,7 @@ import qualified ShellCheck.Analytics import qualified ShellCheck.AnalyzerLib import qualified ShellCheck.Checker import qualified ShellCheck.Checks.Commands +import qualified ShellCheck.Checks.Custom import qualified ShellCheck.Checks.ShellSupport import qualified ShellCheck.Fixer import qualified ShellCheck.Formatter.Diff @@ -18,6 +19,7 @@ main = do ,ShellCheck.AnalyzerLib.runTests ,ShellCheck.Checker.runTests ,ShellCheck.Checks.Commands.runTests + ,ShellCheck.Checks.Custom.runTests ,ShellCheck.Checks.ShellSupport.runTests ,ShellCheck.Fixer.runTests ,ShellCheck.Formatter.Diff.runTests