module Web.Simple.Migrations
( Migration
, newMigration
) where
import System.Locale
import System.Time
type Migration = String
-> String
-> IO Bool
newMigration :: String -> IO ()
newMigration name = do
time <- getClockTime >>= return . toUTCTime
let timestr = formatCalendarTime defaultTimeLocale
"%Y%m%d%H%M%S" time
writeFile ("migrate/" ++ timestr ++ "_" ++ name ++ ".hs") migrationTemplate
migrationTemplate :: String
migrationTemplate = concat
[ "import Web.Simple.Migrations\n\n"
, "up :: Migration\n"
, "up = const . const $ return False\n\n"
, "down :: Migration\n"
, "down = const . const $ return False\n\n"]