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