-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generic project initialization tool -- -- hinit is a generic project initialization tool similar to -- cookiecutter. @package hinit @version 0.2.2 module Control.Effect.Terminal data Terminal (m :: Type -> Type) a [PrettyPrint] :: Handle -> Doc AnsiStyle -> Terminal m () [Prompt] :: String -> Terminal m (Maybe Text) prettyPrint :: Has Terminal sig m => Handle -> Doc AnsiStyle -> m () prompt :: Has Terminal sig m => String -> m (Maybe Text) newtype TerminalC m a TerminalC :: InputT m a -> TerminalC m a [runTerminalC] :: TerminalC m a -> InputT m a runTerminal' :: (MonadIO m, MonadMask m) => Settings m -> TerminalC m a -> m a runTerminal :: (MonadIO m, MonadMask m) => TerminalC m a -> m a instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Effect.Terminal.TerminalC m) instance GHC.Base.Monad m => GHC.Base.Monad (Control.Effect.Terminal.TerminalC m) instance GHC.Base.Applicative m => GHC.Base.Applicative (Control.Effect.Terminal.TerminalC m) instance GHC.Base.Functor m => GHC.Base.Functor (Control.Effect.Terminal.TerminalC m) instance (Control.Monad.Catch.MonadMask m, Control.Monad.IO.Class.MonadIO m, Control.Algebra.Algebra sig m) => Control.Algebra.Algebra (Control.Effect.Terminal.Terminal Control.Effect.Sum.:+: sig) (Control.Effect.Terminal.TerminalC m) module Control.Effect.Time data Time (m :: Type -> Type) k [GetZonedTime] :: Time m ZonedTime getZonedTime :: Has Time sig m => m ZonedTime newtype TimeC m a TimeC :: m a -> TimeC m a [runTimeC] :: TimeC m a -> m a instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Effect.Time.TimeC m) instance GHC.Base.Monad m => GHC.Base.Monad (Control.Effect.Time.TimeC m) instance GHC.Base.Applicative m => GHC.Base.Applicative (Control.Effect.Time.TimeC m) instance GHC.Base.Functor m => GHC.Base.Functor (Control.Effect.Time.TimeC m) instance Control.Algebra.Has (Control.Effect.Lift.Internal.Lift GHC.Types.IO) sig m => Control.Algebra.Algebra (Control.Effect.Time.Time Control.Effect.Sum.:+: sig) (Control.Effect.Time.TimeC m) -- | Boolean expressions implemented using naive trees module Data.Algebra.Boolean type Parser = Parsec Void Text -- | Context. Every variable not in context will be treated as False. type CTX = Map Text Bool data Expr -- | Evaluate an expression in a context. eval :: CTX -> Expr -> Bool -- | Parse an expression expr :: Parser Expr instance GHC.Classes.Ord Data.Algebra.Boolean.Var instance GHC.Classes.Eq Data.Algebra.Boolean.Var instance GHC.Show.Show Data.Algebra.Boolean.Var instance GHC.Classes.Eq Data.Algebra.Boolean.Expr instance GHC.Show.Show Data.Algebra.Boolean.Expr module Hinit.Template.Config data TemplateConfig TemplateConfig :: Maybe Text -> [Text] -> [Pattern] -> [Option] -> [OptionalIgnores] -> TemplateConfig [$sel:desc:TemplateConfig] :: TemplateConfig -> Maybe Text [$sel:tags:TemplateConfig] :: TemplateConfig -> [Text] [$sel:ignores:TemplateConfig] :: TemplateConfig -> [Pattern] [$sel:options:TemplateConfig] :: TemplateConfig -> [Option] [$sel:optionals:TemplateConfig] :: TemplateConfig -> [OptionalIgnores] pToTomlVal :: Pattern -> AnyValue tomlValToP :: AnyValue -> Either TomlBiMapError Pattern _Pattern :: TomlBiMap Pattern AnyValue templateConfigCodec :: TomlCodec TemplateConfig data Option BoolOpt :: Text -> Maybe Text -> Maybe Bool -> Option [$sel:name:BoolOpt] :: Option -> Text [$sel:desc:BoolOpt] :: Option -> Maybe Text [$sel:defB:BoolOpt] :: Option -> Maybe Bool TextOpt :: Text -> Maybe Text -> Maybe Text -> Option [$sel:name:BoolOpt] :: Option -> Text [$sel:desc:BoolOpt] :: Option -> Maybe Text [$sel:defT:BoolOpt] :: Option -> Maybe Text pair' :: TomlCodec a -> TomlCodec b -> TomlCodec c -> TomlCodec (a, b, c) matchB :: Option -> Maybe (Text, Maybe Text, Bool) matchB' :: Option -> Maybe (Text, Maybe Text) matchT :: Option -> Maybe (Text, Maybe Text, Text) matchT' :: Option -> Maybe (Text, Maybe Text) descCodec :: TomlCodec (Maybe Text) tyCodec :: Text -> TomlCodec Text optCodec :: TomlCodec Option data OptionalIgnores Optional :: Text -> [Pattern] -> OptionalIgnores [$sel:when:Optional] :: OptionalIgnores -> Text [$sel:ignores:Optional] :: OptionalIgnores -> [Pattern] instance GHC.Generics.Generic Hinit.Template.Config.Option instance GHC.Classes.Eq Hinit.Template.Config.Option instance GHC.Show.Show Hinit.Template.Config.Option instance GHC.Generics.Generic Hinit.Template.Config.OptionalIgnores instance GHC.Classes.Eq Hinit.Template.Config.OptionalIgnores instance GHC.Show.Show Hinit.Template.Config.OptionalIgnores instance GHC.Generics.Generic Hinit.Template.Config.TemplateConfig instance GHC.Classes.Eq Hinit.Template.Config.TemplateConfig instance GHC.Show.Show Hinit.Template.Config.TemplateConfig instance Toml.Codec.Generic.HasItemCodec Hinit.Template.Config.OptionalIgnores instance Toml.Codec.Generic.HasItemCodec Hinit.Template.Config.Option instance Toml.Codec.Generic.HasItemCodec System.FilePath.Glob.Base.Pattern module Hinit.Types type Context = Map Text Val contextCodec :: TomlCodec Context data ValType Bool' :: ValType Text' :: ValType data Val Bool :: Bool -> Val Text :: Text -> Val toTomlVal :: Val -> AnyValue fromTomlVal :: AnyValue -> Either TomlBiMapError Val _Val :: TomlBiMap Val AnyValue valCodec :: Key -> TomlCodec Val data VCS Git :: VCS Mercurial :: VCS Darcs :: VCS Pijul :: VCS Other :: Text -> VCS vcsToT :: VCS -> Text textToVcs :: Text -> VCS vcsCodec :: Key -> TomlCodec (Maybe VCS) instance GHC.Generics.Generic Hinit.Types.ValType instance GHC.Classes.Eq Hinit.Types.ValType instance GHC.Generics.Generic Hinit.Types.Val instance GHC.Classes.Eq Hinit.Types.Val instance GHC.Show.Show Hinit.Types.Val instance GHC.Generics.Generic Hinit.Types.VCS instance GHC.Classes.Eq Hinit.Types.VCS instance GHC.Show.Show Hinit.Types.VCS instance Toml.Codec.Generic.HasCodec (GHC.Maybe.Maybe Hinit.Types.VCS) instance Text.Mustache.Internal.Types.ToMustache Hinit.Types.Val instance Toml.Codec.Generic.HasCodec Hinit.Types.Val instance GHC.Show.Show Hinit.Types.ValType module Hinit.Utils mkBulletList :: [Doc a] -> Doc a mkError :: Doc AnsiStyle -> Doc AnsiStyle readYesNo :: Text -> Maybe Bool newtype PrettyShow a PrettyShow :: a -> PrettyShow a [unPrettyShow] :: PrettyShow a -> a matches :: [Pattern] -> FilePath -> Bool whenJust :: Applicative m => Maybe a -> (a -> m ()) -> m () instance Prettyprinter.Internal.Pretty a => GHC.Show.Show (Hinit.Utils.PrettyShow a) module Hinit.Errors data ExprParseError ExprParseError :: Text -> [ParseError Text Void] -> ExprParseError [$sel:expression:ExprParseError] :: ExprParseError -> Text [$sel:errors:ExprParseError] :: ExprParseError -> [ParseError Text Void] data TomlFile Global :: TomlFile Template :: Text -> TomlFile data ConfigParseError ConfigParseError :: TomlFile -> [TomlDecodeError] -> ConfigParseError [$sel:file:ConfigParseError] :: ConfigParseError -> TomlFile [$sel:errors:ConfigParseError] :: ConfigParseError -> [TomlDecodeError] data MustacheError RenderingError :: Path Rel a -> Bool -> [SubstitutionError] -> MustacheError TemplateParseError :: Path Rel a -> Bool -> Text -> MustacheError data IllformedPath TemplateName :: Text -> IllformedPath ProjectName :: Text -> IllformedPath TemplateFile :: Path Rel a -> Text -> IllformedPath newtype TemplateNotFound TemplateNotFound :: Text -> TemplateNotFound newtype ProjectAlreadExist ProjectAlreadExist :: Text -> ProjectAlreadExist newtype VcsCmdNotFound VcsCmdNotFound :: VCS -> VcsCmdNotFound data ProcessExitFailure ProcessExitFailure :: CmdSpec -> Int -> String -> String -> ProcessExitFailure prettyPrintError :: Has Terminal sig m => Doc AnsiStyle -> m () prettyPrintWarning :: Has Terminal sig m => Doc AnsiStyle -> m () simpleHandler :: (Has Terminal sig m, Has (Lift IO) sig m, Pretty a) => a -> m () instance GHC.Exception.Type.Exception Hinit.Errors.ExprParseError instance GHC.Show.Show Hinit.Errors.ExprParseError instance GHC.Generics.Generic Hinit.Errors.ExprParseError instance GHC.Classes.Eq Hinit.Errors.ExprParseError instance GHC.Classes.Eq Hinit.Errors.TomlFile instance GHC.Exception.Type.Exception Hinit.Errors.ConfigParseError instance GHC.Show.Show Hinit.Errors.ConfigParseError instance GHC.Generics.Generic Hinit.Errors.ConfigParseError instance GHC.Classes.Eq Hinit.Errors.ConfigParseError instance GHC.Exception.Type.Exception Hinit.Errors.MustacheError instance GHC.Show.Show Hinit.Errors.MustacheError instance GHC.Exception.Type.Exception Hinit.Errors.IllformedPath instance GHC.Show.Show Hinit.Errors.IllformedPath instance GHC.Exception.Type.Exception Hinit.Errors.TemplateNotFound instance GHC.Show.Show Hinit.Errors.TemplateNotFound instance GHC.Generics.Generic Hinit.Errors.TemplateNotFound instance GHC.Classes.Eq Hinit.Errors.TemplateNotFound instance GHC.Exception.Type.Exception Hinit.Errors.ProjectAlreadExist instance GHC.Show.Show Hinit.Errors.ProjectAlreadExist instance GHC.Generics.Generic Hinit.Errors.ProjectAlreadExist instance GHC.Classes.Eq Hinit.Errors.ProjectAlreadExist instance GHC.Exception.Type.Exception Hinit.Errors.VcsCmdNotFound instance GHC.Show.Show Hinit.Errors.VcsCmdNotFound instance GHC.Generics.Generic Hinit.Errors.VcsCmdNotFound instance GHC.Classes.Eq Hinit.Errors.VcsCmdNotFound instance GHC.Exception.Type.Exception Hinit.Errors.ProcessExitFailure instance GHC.Show.Show Hinit.Errors.ProcessExitFailure instance GHC.Generics.Generic Hinit.Errors.ProcessExitFailure instance GHC.Classes.Eq Hinit.Errors.ProcessExitFailure instance Prettyprinter.Internal.Pretty Hinit.Errors.ProcessExitFailure instance Prettyprinter.Internal.Pretty Hinit.Errors.VcsCmdNotFound instance Prettyprinter.Internal.Pretty Hinit.Errors.ProjectAlreadExist instance Prettyprinter.Internal.Pretty Hinit.Errors.TemplateNotFound instance Prettyprinter.Internal.Pretty Hinit.Errors.IllformedPath instance Prettyprinter.Internal.Pretty Hinit.Errors.MustacheError instance Prettyprinter.Internal.Pretty Hinit.Errors.ConfigParseError instance GHC.Show.Show Hinit.Errors.TomlFile instance Prettyprinter.Internal.Pretty Hinit.Errors.ExprParseError module Hinit.Process vcsInitProc :: VCS -> Maybe CreateProcess guessExecutableExists :: Has (Lift IO) sig m => CmdSpec -> m Bool initVCS :: (Has (Lift IO) sig m, Has (Throw ProcessExitFailure) sig m, Has Terminal sig m) => VCS -> Path a Dir -> m () runProc :: (Has (Lift IO) sig m, Has (Throw ProcessExitFailure) sig m) => CreateProcess -> m () module Hinit.Optionals defaultIgnores :: [Pattern] parseExpr :: Has (Throw ExprParseError) sig m => Text -> m Expr booleanContext :: Context -> CTX ignoredFiles :: Has (Throw ExprParseError) sig m => Context -> TemplateConfig -> m [Pattern] -- | Global configuration module Hinit.Config data Config Config :: Text -> Text -> Text -> Maybe LicenseId -> Maybe VCS -> Context -> Config [name] :: Config -> Text [email] :: Config -> Text [ghUserName] :: Config -> Text [license] :: Config -> Maybe LicenseId [vcs] :: Config -> Maybe VCS [defAttrs] :: Config -> Context configCodec :: TomlCodec Config licenseToToml :: LicenseId -> AnyValue tomlToLicense :: AnyValue -> Either TomlBiMapError LicenseId _LicenseId :: TomlBiMap LicenseId AnyValue licenseIdCodec :: Key -> TomlCodec LicenseId askConfig :: forall sig m. Has Terminal sig m => m Config getConfigFile :: Has (Lift IO) sig m => m (Path Abs File) readConfig :: (Has (Lift IO) sig m, Has (Throw ConfigParseError) sig m) => Path Abs File -> m (Maybe Config) getConfig :: (Has Terminal sig m, Has (Lift IO) sig m, Has (Throw ConfigParseError) sig m) => m Config -- | Build two Contexts from a program config buildContextFromConfig :: Has Time sig m => Text -> Config -> m (Context, Context) instance GHC.Generics.Generic Hinit.Config.Config instance GHC.Classes.Eq Hinit.Config.Config instance GHC.Show.Show Hinit.Config.Config module Paths_hinit version :: Version getBinDir :: IO FilePath getLibDir :: IO FilePath getDynLibDir :: IO FilePath getDataDir :: IO FilePath getLibexecDir :: IO FilePath getDataFileName :: FilePath -> IO FilePath getSysconfDir :: IO FilePath module Hinit.Template data Template Local :: Path Abs Dir -> Text -> TemplateConfig -> Template [path] :: Template -> Path Abs Dir [name] :: Template -> Text [templateConfig] :: Template -> TemplateConfig Broken :: Path Abs Dir -> Text -> [TomlDecodeError] -> Template [path] :: Template -> Path Abs Dir [name] :: Template -> Text [errors] :: Template -> [TomlDecodeError] fromContext :: Context -> Value underCurrentDir :: Path Rel a -> Bool -- | Copy a file from template to the corresponding location in the target -- directory and apply substitution. Note that this function assumes that -- the parent directory of the target file exists. copyFileFromTemplate :: (Has (Throw MustacheError) sig m, Has (Throw IllformedPath) sig m, Has (Lift IO) sig m, ToMustache ctx) => ctx -> Path a Dir -> Path b Dir -> Path Rel File -> m () -- | Copy a directory from template to the corresponding location in the -- target directory and apply substitution. Note that this function -- assumes that the parent directory of the target directory exists. copyDirFromTemplate :: (Has (Throw MustacheError) sig m, Has (Throw IllformedPath) sig m, Has (Lift IO) sig m, ToMustache ctx) => ctx -> Path a Dir -> Path b Dir -> Path Rel Dir -> m () -- | Initialize a project from a template initFromTemplate :: (Has (Throw MustacheError) sig m, Has (Throw IllformedPath) sig m, Has (Lift IO) sig m, MonadIO m, ToMustache ctx) => [Pattern] -> ctx -> Path a Dir -> Path b Dir -> m () readTemplate :: Has (Lift IO) sig m => Path Abs Dir -> m (Maybe Template) getTemplateDirs :: Has (Lift IO) sig m => m [Path Abs Dir] getTemplate :: (Has (Lift IO) sig m, Has (Throw IllformedPath) sig m) => Text -> m (Maybe Template) getTemplates :: Has (Lift IO) sig m => m [Template] prettyTemplate :: Bool -> Template -> Doc a prettyTemplates :: Bool -> [Template] -> Doc a instance GHC.Generics.Generic Hinit.Template.Template instance GHC.Classes.Eq Hinit.Template.Template instance GHC.Show.Show Hinit.Template.Template module Hinit.Cli query :: Has Terminal sig m => ValType -> Text -> Maybe Text -> m Val query' :: Has Terminal sig m => ValType -> m Val parseProject :: Has (Throw IllformedPath) sig m => Text -> m (Path Rel Dir) module Hinit.License lookupT :: Text -> Context -> Maybe Text getLicenseFile :: Has (Lift IO) sig m => LicenseId -> m License buildSPDXContext :: Context -> Map Text Text initializeLicense :: Has (Lift IO) sig m => LicenseId -> Context -> Path a Dir -> m () module Hinit.Cli.Options data Op Set :: Text -> Val -> Op toPair :: Op -> (Text, Val) data Command Init :: Text -> Text -> [Op] -> Bool -> Command [template] :: Command -> Text [project] :: Command -> Text [ops] :: Command -> [Op] [force] :: Command -> Bool List :: Bool -> Command [verbose] :: Command -> Bool verString :: String readBool :: ReadM Bool text :: Parser (Text, Val) bool :: Parser (Text, Val) operation :: Parser Op initOptions :: Parser Command listOptions :: Parser Command commandParser :: Parser Command versionHelper :: Parser (a -> a) cmds :: ParserInfo Command parseCliOptions :: Has (Lift IO) sig m => m Command instance GHC.Generics.Generic Hinit.Cli.Options.Op instance GHC.Classes.Eq Hinit.Cli.Options.Op instance GHC.Show.Show Hinit.Cli.Options.Op instance GHC.Generics.Generic Hinit.Cli.Options.Command instance GHC.Show.Show Hinit.Cli.Options.Command module Hinit.Context opsToCtx :: [Op] -> Context buildContextFromOptions :: forall m sig. Has Terminal sig m => [Option] -> m Context buildContext :: (Has Time sig m, Has Terminal sig m) => Config -> TemplateConfig -> [Op] -> Text -> m Context