refactor
locationLogFileKey had an out of date list of toplevel log files to skip over, and was only not broken because the other toplevel log files don't look like keys. Fixed that too.
This commit is contained in:
parent
dec30d2b14
commit
12e4906657
1 changed files with 23 additions and 31 deletions
54
Logs.hs
54
Logs.hs
|
@ -28,7 +28,7 @@ getLogVariety f
|
|||
| f `elem` topLevelNewUUIDBasedLogs = Just NewUUIDBasedLog
|
||||
| isRemoteStateLog f = Just NewUUIDBasedLog
|
||||
| isRemoteContentIdentifierLog f = Just NewUUIDBasedLog
|
||||
| isChunkLog f = ChunkLog <$> chunkLogFileKey f
|
||||
| isChunkLog f = ChunkLog <$> extLogFileKey chunkLogExt f
|
||||
| isRemoteMetaDataLog f = Just RemoteMetaDataLog
|
||||
| isMetaDataLog f || f `elem` otherLogs = Just OtherLog
|
||||
| otherwise = PresenceLog <$> firstJust (presenceLogs f)
|
||||
|
@ -115,16 +115,6 @@ exportLog = "export.log"
|
|||
locationLogFile :: GitConfig -> Key -> String
|
||||
locationLogFile config key = branchHashDir config key </> keyFile key ++ ".log"
|
||||
|
||||
{- Converts a pathname into a key if it's a location log. -}
|
||||
locationLogFileKey :: FilePath -> Maybe Key
|
||||
locationLogFileKey path
|
||||
| ["remote", "web"] `isPrefixOf` splitDirectories dir = Nothing
|
||||
| ext == ".log" = fileKey base
|
||||
| otherwise = Nothing
|
||||
where
|
||||
(dir, file) = splitFileName path
|
||||
(base, ext) = splitAt (length file - 4) file
|
||||
|
||||
{- The filename of the url log for a given key. -}
|
||||
urlLogFile :: GitConfig -> Key -> FilePath
|
||||
urlLogFile config key = branchHashDir config key </> keyFile key ++ urlLogExt
|
||||
|
@ -141,17 +131,6 @@ oldurlLogs config key =
|
|||
urlLogExt :: String
|
||||
urlLogExt = ".log.web"
|
||||
|
||||
{- Converts a url log file into a key.
|
||||
- (Does not work on oldurlLogs.) -}
|
||||
urlLogFileKey :: FilePath -> Maybe Key
|
||||
urlLogFileKey path
|
||||
| ext == urlLogExt = fileKey base
|
||||
| otherwise = Nothing
|
||||
where
|
||||
file = takeFileName path
|
||||
(base, ext) = splitAt (length file - extlen) file
|
||||
extlen = length urlLogExt
|
||||
|
||||
{- Does not work on oldurllogs. -}
|
||||
isUrlLog :: FilePath -> Bool
|
||||
isUrlLog file = urlLogExt `isSuffixOf` file
|
||||
|
@ -171,15 +150,6 @@ isRemoteStateLog path = remoteStateLogExt `isSuffixOf` path
|
|||
chunkLogFile :: GitConfig -> Key -> FilePath
|
||||
chunkLogFile config key = branchHashDir config key </> keyFile key ++ chunkLogExt
|
||||
|
||||
chunkLogFileKey :: FilePath -> Maybe Key
|
||||
chunkLogFileKey path
|
||||
| ext == chunkLogExt = fileKey base
|
||||
| otherwise = Nothing
|
||||
where
|
||||
file = takeFileName path
|
||||
(base, ext) = splitAt (length file - extlen) file
|
||||
extlen = length chunkLogExt
|
||||
|
||||
chunkLogExt :: String
|
||||
chunkLogExt = ".log.cnk"
|
||||
|
||||
|
@ -215,3 +185,25 @@ remoteContentIdentifierExt = ".log.cid"
|
|||
|
||||
isRemoteContentIdentifierLog :: FilePath -> Bool
|
||||
isRemoteContentIdentifierLog path = remoteContentIdentifierExt `isSuffixOf` path
|
||||
|
||||
{- From an extension and a log filename, get the key that it's a log for. -}
|
||||
extLogFileKey :: String -> FilePath -> Maybe Key
|
||||
extLogFileKey expectedext path
|
||||
| ext == expectedext = fileKey base
|
||||
| otherwise = Nothing
|
||||
where
|
||||
file = takeFileName path
|
||||
(base, ext) = splitAt (length file - extlen) file
|
||||
extlen = length expectedext
|
||||
|
||||
{- Converts a url log file into a key.
|
||||
- (Does not work on oldurlLogs.) -}
|
||||
urlLogFileKey :: FilePath -> Maybe Key
|
||||
urlLogFileKey = extLogFileKey urlLogExt
|
||||
|
||||
{- Converts a pathname into a key if it's a location log. -}
|
||||
locationLogFileKey :: FilePath -> Maybe Key
|
||||
locationLogFileKey path
|
||||
-- Want only xx/yy/foo.log, not .log files in other places.
|
||||
| length (splitDirectories path) /= 3 = Nothing
|
||||
| otherwise = extLogFileKey ".log" path
|
||||
|
|
Loading…
Reference in a new issue