added git-annex remotedaemon

So far, handling connecting to git-annex-shell notifychanges, and
pulling immediately when a change is pushed to a remote.

A little bit buggy (crashes after the first pull), but it already works!

This commit was sponsored by Mark Sheppard.
This commit is contained in:
Joey Hess 2014-04-06 19:06:03 -04:00
parent 6ca01f40cf
commit 43909723b3
11 changed files with 376 additions and 116 deletions

View file

@ -0,0 +1,32 @@
{- git-remote-daemon, git-annex-shell notifychanges protocol types
-
- Copyright 2014 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module RemoteDaemon.Transport.Ssh.Types (
Notification(..),
Proto.serialize,
Proto.deserialize,
Proto.formatMessage,
) where
import qualified Utility.SimpleProtocol as Proto
import RemoteDaemon.Types (RefList)
data Notification
= READY
| CHANGED RefList
instance Proto.Sendable Notification where
formatMessage READY = ["READY"]
formatMessage (CHANGED shas) = ["CHANGED", Proto.serialize shas]
instance Proto.Receivable Notification where
parseCommand "READY" = Proto.parse0 READY
parseCommand "CHANGED" = Proto.parse1 CHANGED
parseCommand _ = Proto.parseFail