diff options
author | Joey Hess <joey@kitenet.net> | 2014-04-06 19:06:03 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-04-06 19:10:23 -0400 |
commit | 8c4bfe2f2141bce84ea22120da445c148b6f1168 (patch) | |
tree | 817f5951cec02c1acec3f26c886beea79cf0957c /RemoteDaemon/Transport/Ssh/Types.hs | |
parent | 1eb96cc31a0f0ec0339f6b28a362b057444069af (diff) |
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.
Diffstat (limited to 'RemoteDaemon/Transport/Ssh/Types.hs')
-rw-r--r-- | RemoteDaemon/Transport/Ssh/Types.hs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/RemoteDaemon/Transport/Ssh/Types.hs b/RemoteDaemon/Transport/Ssh/Types.hs new file mode 100644 index 000000000..d3fd314b4 --- /dev/null +++ b/RemoteDaemon/Transport/Ssh/Types.hs @@ -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 |