aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Plugin.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/Plugin.hs b/src/Plugin.hs
index da38943..84b4779 100644
--- a/src/Plugin.hs
+++ b/src/Plugin.hs
@@ -9,18 +9,22 @@ import Text.Regex.TDFA
import Plugin.Base
import Plugin.GitHubCommit
+-- | Get the first plugin that matches the given message text.
matchPlugin :: String -> Maybe Plugin
matchPlugin message = firstPlugin $ matchPlugins message plugins
where
firstPlugin [] = Nothing
firstPlugin (p:ps) = Just p
+-- | Filter the list of plugins to those that match the given message.
matchPlugins :: String -> [Plugin] -> [Plugin]
matchPlugins message plugins = [p | p <- plugins, message =~ matchRegex p]
+-- | Run the action belonging to the plugin, stored in its `perform` field.
performPlugin :: Plugin -> String -> String
performPlugin p message = perform p $ message =~ matchRegex p
+-- | The list of plugins to load
plugins :: [Plugin]
plugins =
[ gitHubCommit