{-# LANGUAGE TemplateHaskell, OverloadedStrings #-} module HsDev.Database.SQLite.Schema ( schema, commands ) where import qualified Data.Text as T import Data.List (unfoldr) import Database.SQLite.Simple (Query(..)) import HsDev.Database.SQLite.Schema.TH schema :: T.Text schema = T.pack $schemaExp commands :: [Query] commands = map (Query . T.unlines) . unfoldr takeStmt . T.lines $ schema where takeStmt :: [T.Text] -> Maybe ([T.Text], [T.Text]) takeStmt ls = case break endsStmt ls of (_, []) -> Nothing (hs, t:ts) -> Just (hs ++ [t], ts) comment :: T.Text -> Bool comment t = "-- " `T.isPrefixOf` T.strip t endsStmt :: T.Text -> Bool endsStmt t = not (comment t) && ";" `T.isSuffixOf` T.strip t