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