summaryrefslogtreecommitdiff
path: root/LocationLog.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2010-10-10 12:41:20 -0400
committerGravatar Joey Hess <joey@kitenet.net>2010-10-10 12:41:20 -0400
commita55f49efb6c05c5ddb031f077690e90ed7358642 (patch)
treeffc758b626c4fe9beb90db4e1867539a73bb5bb6 /LocationLog.hs
parenta745043e7db87ef43dbbb3f93cdf5807ff9958ec (diff)
update
Diffstat (limited to 'LocationLog.hs')
-rw-r--r--LocationLog.hs14
1 files changed, 7 insertions, 7 deletions
diff --git a/LocationLog.hs b/LocationLog.hs
index 028ceed5f..f9421cd9a 100644
--- a/LocationLog.hs
+++ b/LocationLog.hs
@@ -65,7 +65,7 @@ instance Read LogLine where
{- Reads a log file.
- Note that the LogLines returned may be in any order. -}
-readLog :: String -> IO [LogLine]
+readLog :: FilePath -> IO [LogLine]
readLog file = do
exists <- doesFileExist file
if exists
@@ -79,14 +79,14 @@ readLog file = do
return []
{- Adds a LogLine to a log file -}
-appendLog :: String -> LogLine -> IO ()
+appendLog :: FilePath -> LogLine -> IO ()
appendLog file line = do
createDirectoryIfMissing True (parentDir file)
withFileLocked file AppendMode $ \h ->
hPutStrLn h $ show line
{- Writes a set of lines to a log file -}
-writeLog :: String -> [LogLine] -> IO ()
+writeLog :: FilePath -> [LogLine] -> IO ()
writeLog file lines = do
createDirectoryIfMissing True (parentDir file)
withFileLocked file WriteMode $ \h ->
@@ -99,7 +99,7 @@ logNow status repo = do
return $ LogLine now status repo
{- Returns the filename of the log file for a given annexed file. -}
-logFile :: String -> IO String
+logFile :: FilePath -> IO String
logFile annexedFile = do
repo <- repoTop
return $ (gitStateDir repo) ++
@@ -107,16 +107,16 @@ logFile annexedFile = do
{- Returns a list of repositories that, according to the log, have
- the content of a file -}
-fileLocations :: String -> IO [String]
+fileLocations :: FilePath -> IO [String]
fileLocations file = do
log <- logFile file
lines <- readLog log
return $ map repo (filterPresent lines)
-{- Filters the list of LogLines to find repositories where the file
+{- Filters the list of LogLines to find ones where the file
- is (or should still be) present. -}
filterPresent :: [LogLine] -> [LogLine]
-filterPresent lines = error "unimplimented" -- TODO
+filterPresent lines = filter (\l -> FilePresent == status l) $ compactLog lines
{- Compacts a set of logs, returning a subset that contains the current
- status. -}