imbib-1.0.0: BibFile.hs
module BibFile where
import Control.Applicative hiding ((<|>),many)
import Control.Monad
import Control.Monad.Trans
import qualified Data.ByteString
import Data.Char
import Data.List
import Data.List.Split
import Data.Maybe
import Data.Tree
import System.Directory
import System.FilePath
import Data.Function
import Text.ParserCombinators.Parsec (parseFromFile)
import BibData
--------------------------------------
-- Bib file manipulation
bibfile = "/home/bernardy/project/gitroot/bibtex/jp.bib"
loadBibliography = loadBibliographyFrom bibfile
loadBibliographyFrom fname = do
mBib <- fmap bibToForest <$> parseFromFile parseBib bibfile
case mBib of
Left err -> do print "Failed to load library"
print err
return []
Right bib -> do putStrLn $ show (length $ bib) ++ " entries loaded." -- force it right here
-- print $ last bib -- really force closing the file... ?
return bib
saveBibliography bib = do
writeFile bibfile (concatMap formatEntry $ map treeToEntry bib)
putStrLn $ show (length bib) ++ " entries saved to " ++ bibfile