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:
parent
6ca01f40cf
commit
43909723b3
11 changed files with 376 additions and 116 deletions
32
RemoteDaemon/Transport/Ssh/Types.hs
Normal file
32
RemoteDaemon/Transport/Ssh/Types.hs
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue