stackage-cli-0.0.0: src/Stackage/CLI.hs
{-# LANGUAGE OverloadedStrings #-}
-- | Functions for creating and calling Stackage plugins.
module Stackage.CLI
( -- * Discovering and calling plugins
runStackagePlugin
, Plugins
, findPlugins
, callPlugin
, PluginException (..)
-- * Creating your own plugin
, commandsFromPlugins
, simpleOptions
, addCommand
, simpleVersion
-- * Finer-grained inspection of plugins
, listPlugins
, lookupPlugin
, Plugin
, pluginPrefix
, pluginName
, pluginSummary
, pluginProc
) where
import Data.Text (Text)
import Plugins
import Plugins.Commands
import SimpleOptions
-- | Runs a stackage plugin. Handy for dynamic one-off runs,
-- but if you'll be running multiple plugins, it is recommended
-- that you use @findPlugins "stackage"@ so that the plugin search
-- is performed only once.
runStackagePlugin :: Text -> [String] -> IO ()
runStackagePlugin name args = do
stackage <- findPlugins "stackage"
callPlugin stackage name args