{-# LANGUAGE RankNTypes #-}
module Niv.Cmd where
import qualified Data.Aeson as Aeson
import qualified Data.Text as T
import Niv.Sources
import Niv.Update
import qualified Options.Applicative as Opts
data Cmd = Cmd
{ Cmd -> forall a. InfoMod a
description :: forall a. Opts.InfoMod a,
Cmd -> Text -> Maybe (PackageName, Object)
parseCmdShortcut :: T.Text -> Maybe (PackageName, Aeson.Object),
Cmd -> Parser PackageSpec
parsePackageSpec :: Opts.Parser PackageSpec,
Cmd -> Update () ()
updateCmd :: Update () (),
Cmd -> Text
name :: T.Text,
:: Attrs -> [T.Text]
}