rethought distributed fsck; instead add activity.log and expire command
This is much more space efficient!
This commit is contained in:
parent
1d57f142f1
commit
9445556c97
12 changed files with 239 additions and 144 deletions
37
Logs/Activity.hs
Normal file
37
Logs/Activity.hs
Normal file
|
@ -0,0 +1,37 @@
|
|||
{- git-annex activity log
|
||||
-
|
||||
- Copyright 2015 Joey Hess <id@joeyh.name>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
module Logs.Activity (
|
||||
Log,
|
||||
Activity(..),
|
||||
recordActivity,
|
||||
lastActivities,
|
||||
) where
|
||||
|
||||
import Data.Time.Clock.POSIX
|
||||
|
||||
import Common.Annex
|
||||
import qualified Annex.Branch
|
||||
import Logs
|
||||
import Logs.UUIDBased
|
||||
|
||||
data Activity = Fsck
|
||||
deriving (Eq, Read, Show, Enum, Bounded)
|
||||
|
||||
recordActivity :: Activity -> UUID -> Annex ()
|
||||
recordActivity act uuid = do
|
||||
ts <- liftIO getPOSIXTime
|
||||
Annex.Branch.change activityLog $
|
||||
showLog id . changeLog ts uuid (show act) . parseLog readish
|
||||
|
||||
lastActivities :: Maybe Activity -> Annex (Log Activity)
|
||||
lastActivities wantact = parseLog onlywanted <$> Annex.Branch.get activityLog
|
||||
where
|
||||
onlywanted s = case readish s of
|
||||
Just a | wanted a -> Just a
|
||||
_ -> Nothing
|
||||
wanted a = maybe True (a ==) wantact
|
|
@ -17,7 +17,6 @@ module Logs.Location (
|
|||
LogStatus(..),
|
||||
logStatus,
|
||||
logChange,
|
||||
logChange',
|
||||
loggedLocations,
|
||||
loggedLocationsHistorical,
|
||||
locationLog,
|
||||
|
|
|
@ -16,7 +16,6 @@ module Logs.Presence (
|
|||
addLog,
|
||||
readLog,
|
||||
logNow,
|
||||
logThen,
|
||||
currentLog,
|
||||
currentLogInfo,
|
||||
historicalLogInfo,
|
||||
|
@ -44,9 +43,6 @@ logNow s i = do
|
|||
now <- liftIO getPOSIXTime
|
||||
return $ LogLine now s i
|
||||
|
||||
logThen :: POSIXTime -> LogStatus -> String -> Annex LogLine
|
||||
logThen t s i = return $ LogLine t s i
|
||||
|
||||
{- Reads a log and returns only the info that is still in effect. -}
|
||||
currentLogInfo :: FilePath -> Annex [String]
|
||||
currentLogInfo file = map info <$> currentLog file
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue