1module TutorialD.Interpreter.Import.TutorialD where
3import TutorialD.Interpreter.Import.Base
4import TutorialD.Interpreter.Base
5import TutorialD.Interpreter.DatabaseContextExpr
6import Text.Megaparsec.Text
7import Text.Megaparsec hiding (try)
9import qualified ProjectM36.Error as PM36E
10import qualified Data.Text as T
11import Control.Exception
12import qualified Data.Text.IO as TIO
13--import a file containing TutorialD database context expressions
15importTutorialD :: FilePath -> IO (Either RelationalError DatabaseContextExpr)
16importTutorialD pathIn = do
17 tutdData <- try (TIO.readFile pathIn) :: IO (Either IOError T.Text)
19 Left err -> return $ Left (ImportError $ T.pack (show err))
21 case parse multipleDatabaseContextExprP "import" tutdData' of
22 --parseErrorPretty is new in megaparsec 5
23 Left err -> pure (Left (PM36E.ParseError (T.pack (show err))))
24 Right expr -> pure (Right expr)
26tutdImportP :: Parser DatabaseContextDataImportOperator
28 reserved ":importtutd"
31 return $ DatabaseContextDataImportOperator (T.unpack path) importTutorialD
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list