diff options
Diffstat (limited to 'UUID.hs')
-rw-r--r-- | UUID.hs | 26 |
1 files changed, 10 insertions, 16 deletions
@@ -19,8 +19,8 @@ module UUID ( genUUID, prettyPrintUUIDs, describeUUID, - uuidLog, - uuidMap + uuidMap, + uuidLog ) where import Control.Monad.State @@ -29,18 +29,21 @@ import System.IO import qualified Data.Map as M import Data.Maybe -import qualified GitRepo as Git +import qualified Git +import qualified Branch import Types import Types.UUID -import Locations import qualified Annex -import Utility import qualified SysConfig import Config configkey :: String configkey = "annex.uuid" +{- Filename of uuid.log. -} +uuidLog :: FilePath +uuidLog = "uuid.log" + {- Generates a UUID. There is a library for this, but it's not packaged, - so use the command line tool. -} genUUID :: IO UUID @@ -103,26 +106,17 @@ describeUUID :: UUID -> String -> Annex () describeUUID uuid desc = do m <- uuidMap let m' = M.insert uuid desc m - logfile <- uuidLog - liftIO $ safeWriteFile logfile (serialize m') + Branch.change uuidLog (serialize m') where serialize m = unlines $ map (\(u, d) -> u++" "++d) $ M.toList m {- Read and parse the uuidLog into a Map -} uuidMap :: Annex (M.Map UUID String) uuidMap = do - logfile <- uuidLog - s <- liftIO $ catch (readFile logfile) ignoreerror + s <- Branch.get uuidLog return $ M.fromList $ map pair $ lines s where pair l = if 1 < length (words l) then (head $ words l, unwords $ drop 1 $ words l) else ("", "") - ignoreerror _ = return "" - -{- Filename of uuid.log. -} -uuidLog :: Annex FilePath -uuidLog = do - g <- Annex.gitRepo - return $ gitStateDir g ++ "uuid.log" |