-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Specify Haskell project templates and generate files -- @package project-template @version 0.2.0 module Text.ProjectTemplate -- | Create a template file from a stream of file/contents combinations. -- -- Since 0.1.0 createTemplate :: Monad m => Conduit (FilePath, m ByteString) m ByteString -- | Unpack a template to some destination. Destination is provided by the -- first argument. -- -- The second argument allows you to modify the incoming stream, usually -- to replace variables. For example, to replace PROJECTNAME with -- myproject, you could use: -- --
-- Data.Text.replace "PROJECTNAME" "myproject" ---- -- Note that this will affect both file contents and file names. -- -- Since 0.1.0 unpackTemplate :: MonadThrow m => (FilePath -> Sink ByteString m ()) -> (Text -> Text) -> Sink ByteString m () -- | The first argument to unpackTemplate, specifying how to receive -- a file. -- -- Since 0.1.0 type FileReceiver m = FilePath -> Sink ByteString m () -- | Receive files to a Writer monad in memory. -- --
-- execWriter $ runExceptionT_ $ src $$ unpackTemplate receiveMem id ---- -- Since 0.1.0 receiveMem :: MonadWriter (Map FilePath ByteString) m => FileReceiver m -- | Receive files to the given folder on the filesystem. -- --
-- unpackTemplate (receiveFS "some-destination") (T.replace "PROJECTNAME" "foo") ---- -- Since 0.1.0 receiveFS :: MonadResource m => FilePath -> FileReceiver m -- | Exceptions that can be thrown. -- -- Since 0.1.0 data ProjectTemplateException InvalidInput :: Text -> ProjectTemplateException BinaryLoopNeedsOneLine :: ProjectTemplateException instance Typeable ProjectTemplateException instance Show ProjectTemplateException instance Exception ProjectTemplateException