module Hscaffold.Types where
import Control.Monad.Writer
import Data.Text (Text)
import System.Directory
type ScaffoldMonadT m a = WriterT ScaffoldActionV m a
type ScaffoldMonadIO a = WriterT ScaffoldActionV IO a
type ScaffoldMonadET e m a = WriterT (ScaffoldAction e) m a
type ScaffoldAction e = [ScaffoldActionType e]
type ScaffoldActionV = ScaffoldAction ()
data ScaffoldActionType e =
File FilePath Text
| Link FilePath FilePath
| Directory FilePath (ScaffoldAction e)
| SetPermissions Permissions FilePath
| Copy FilePath FilePath
| ScaffoldActionTypeExtension e
deriving (Show, Eq, Ord)