summaryrefslogtreecommitdiff
path: root/UUID.hs
diff options
context:
space:
mode:
Diffstat (limited to 'UUID.hs')
-rw-r--r--UUID.hs26
1 files changed, 10 insertions, 16 deletions
diff --git a/UUID.hs b/UUID.hs
index f222f7a9d..0723abeca 100644
--- a/UUID.hs
+++ b/UUID.hs
@@ -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"