{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Examples.AddComment where
import Protolude
import qualified Hyrax.Abif.Read as H
import qualified Hyrax.Abif.Write as H
addComment :: IO ()
= do
Either Text Abif
abif' <- FilePath -> IO (Either Text Abif)
H.readAbif "example.ab1"
case Either Text Abif
abif' of
Left e :: Text
e -> Text -> IO ()
forall a (m :: * -> *). (Print a, MonadIO m) => a -> m ()
putStrLn (Text -> IO ()) -> Text -> IO ()
forall a b. (a -> b) -> a -> b
$ "error reading ABIF: " Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
e
Right abif :: Abif
abif -> do
let modified :: Abif
modified = Abif -> Directory -> Abif
H.addDirectory Abif
abif (Directory -> Abif) -> Directory -> Abif
forall a b. (a -> b) -> a -> b
$ Text -> Directory
H.mkComment "new comment"
FilePath -> Abif -> IO ()
H.writeAbif "example.modified.ab1" Abif
modified