factor out Annex.Proxy
This commit is contained in:
parent
f0d6114286
commit
d34326ab76
3 changed files with 29 additions and 13 deletions
27
Annex/Proxy.hs
Normal file
27
Annex/Proxy.hs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{- proxying
|
||||||
|
-
|
||||||
|
- Copyright 2024 Joey Hess <id@joeyh.name>
|
||||||
|
-
|
||||||
|
- Licensed under the GNU AGPL version 3 or higher.
|
||||||
|
-}
|
||||||
|
|
||||||
|
module Annex.Proxy where
|
||||||
|
|
||||||
|
import Annex.Common
|
||||||
|
import P2P.Proxy
|
||||||
|
import P2P.Protocol
|
||||||
|
import P2P.IO
|
||||||
|
import qualified Remote
|
||||||
|
import Remote.Helper.Ssh (openP2PShellConnection', closeP2PShellConnection)
|
||||||
|
|
||||||
|
-- FIXME: Support special remotes.
|
||||||
|
proxySshRemoteSide :: ProtocolVersion -> Remote -> Annex RemoteSide
|
||||||
|
proxySshRemoteSide clientmaxversion remote = mkRemoteSide (Remote.uuid remote) $
|
||||||
|
openP2PShellConnection' remote clientmaxversion >>= \case
|
||||||
|
Just conn@(OpenConnection (remoterunst, remoteconn, _)) ->
|
||||||
|
return $ Just
|
||||||
|
( remoterunst
|
||||||
|
, remoteconn
|
||||||
|
, void $ liftIO $ closeP2PShellConnection conn
|
||||||
|
)
|
||||||
|
_ -> return Nothing
|
|
@ -13,9 +13,9 @@ import P2P.Annex
|
||||||
import P2P.Proxy
|
import P2P.Proxy
|
||||||
import qualified P2P.Protocol as P2P
|
import qualified P2P.Protocol as P2P
|
||||||
import qualified Annex
|
import qualified Annex
|
||||||
|
import Annex.Proxy
|
||||||
import Annex.UUID
|
import Annex.UUID
|
||||||
import qualified CmdLine.GitAnnexShell.Checks as Checks
|
import qualified CmdLine.GitAnnexShell.Checks as Checks
|
||||||
import Remote.Helper.Ssh (openP2PShellConnection', closeP2PShellConnection)
|
|
||||||
import Logs.Location
|
import Logs.Location
|
||||||
import Logs.Cluster
|
import Logs.Cluster
|
||||||
import Annex.Cluster
|
import Annex.Cluster
|
||||||
|
@ -94,18 +94,6 @@ proxyClientSide clientuuid = do
|
||||||
clientrunst <- liftIO (mkRunState $ Serving clientuuid Nothing)
|
clientrunst <- liftIO (mkRunState $ Serving clientuuid Nothing)
|
||||||
return $ ClientSide clientrunst (stdioP2PConnection Nothing)
|
return $ ClientSide clientrunst (stdioP2PConnection Nothing)
|
||||||
|
|
||||||
-- FIXME: Support special remotes.
|
|
||||||
proxySshRemoteSide :: P2P.ProtocolVersion -> Remote -> Annex RemoteSide
|
|
||||||
proxySshRemoteSide clientmaxversion remote = mkRemoteSide (Remote.uuid remote) $
|
|
||||||
openP2PShellConnection' remote clientmaxversion >>= \case
|
|
||||||
Just conn@(P2P.IO.OpenConnection (remoterunst, remoteconn, _)) ->
|
|
||||||
return $ Just
|
|
||||||
( remoterunst
|
|
||||||
, remoteconn
|
|
||||||
, void $ liftIO $ closeP2PShellConnection conn
|
|
||||||
)
|
|
||||||
_ -> return Nothing
|
|
||||||
|
|
||||||
p2pErrHandler :: (a -> CommandPerform) -> Annex (Either ProtoFailure a) -> CommandPerform
|
p2pErrHandler :: (a -> CommandPerform) -> Annex (Either ProtoFailure a) -> CommandPerform
|
||||||
p2pErrHandler cont a = a >>= \case
|
p2pErrHandler cont a = a >>= \case
|
||||||
-- Avoid displaying an error when the client hung up on us.
|
-- Avoid displaying an error when the client hung up on us.
|
||||||
|
|
|
@ -550,6 +550,7 @@ Executable git-annex
|
||||||
Annex.Path
|
Annex.Path
|
||||||
Annex.Perms
|
Annex.Perms
|
||||||
Annex.PidLock
|
Annex.PidLock
|
||||||
|
Annex.Proxy
|
||||||
Annex.Queue
|
Annex.Queue
|
||||||
Annex.ReplaceFile
|
Annex.ReplaceFile
|
||||||
Annex.RemoteTrackingBranch
|
Annex.RemoteTrackingBranch
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue