From f1a6e00a3107317d551c27459194aff3317919f4 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 30 Mar 2017 19:32:58 -0400 Subject: multicast: New command, uses uftp to multicast annexed files, for eg a classroom setting. This commit was supported by the NSF-funded DataLad project. --- Logs/Multicast.hs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Logs/Multicast.hs (limited to 'Logs') diff --git a/Logs/Multicast.hs b/Logs/Multicast.hs new file mode 100644 index 000000000..386899fdf --- /dev/null +++ b/Logs/Multicast.hs @@ -0,0 +1,33 @@ +{- git-annex multicast fingerprint log + - + - Copyright 2017 Joey Hess + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Logs.Multicast ( + Fingerprint(..), + recordFingerprint, + knownFingerPrints, +) where + +import Data.Time.Clock.POSIX + +import Annex.Common +import qualified Annex.Branch +import Logs +import Logs.UUIDBased + +import qualified Data.Map as M + +newtype Fingerprint = Fingerprint String + deriving (Eq, Read, Show) + +recordFingerprint :: Fingerprint -> UUID -> Annex () +recordFingerprint fp uuid = do + ts <- liftIO getPOSIXTime + Annex.Branch.change multicastLog $ + showLog show . changeLog ts uuid fp . parseLog readish + +knownFingerPrints :: Annex (M.Map UUID Fingerprint) +knownFingerPrints = simpleMap . parseLog readish <$> Annex.Branch.get activityLog -- cgit v1.2.3