move remote removal into separate module

This allows using Git.Remote w/o needing to have Git.BuildVersion, which
requires configure. It will simplify github-backup when these libraries are
used there.
This commit is contained in:
Joey Hess 2014-10-27 11:24:21 -04:00
parent 9ca3e14481
commit 20a497b181
5 changed files with 33 additions and 17 deletions

View file

@ -18,6 +18,7 @@ import Assistant.DaemonStatus
import qualified Remote import qualified Remote
import Remote.List import Remote.List
import qualified Git.Remote import qualified Git.Remote
import qualified Git.Remote.Remove
import Logs.Trust import Logs.Trust
import qualified Annex import qualified Annex
@ -34,7 +35,7 @@ disableRemote uuid = do
remote <- fromMaybe (error "unknown remote") remote <- fromMaybe (error "unknown remote")
<$> liftAnnex (Remote.remoteFromUUID uuid) <$> liftAnnex (Remote.remoteFromUUID uuid)
liftAnnex $ do liftAnnex $ do
inRepo $ Git.Remote.remove (Remote.name remote) inRepo $ Git.Remote.Remove.remove (Remote.name remote)
void $ remoteListRefresh void $ remoteListRefresh
updateSyncRemotes updateSyncRemotes
return remote return remote

View file

@ -25,7 +25,7 @@ import Assistant.WebApp.RepoList
import Assistant.WebApp.Configurators import Assistant.WebApp.Configurators
import Assistant.XMPP import Assistant.XMPP
#endif #endif
import qualified Git.Remote import qualified Git.Remote.Remove
import Remote.List import Remote.List
import Creds import Creds
@ -211,7 +211,7 @@ getDisconnectXMPPR = do
rs <- filter Remote.isXMPPRemote . syncRemotes rs <- filter Remote.isXMPPRemote . syncRemotes
<$> liftAssistant getDaemonStatus <$> liftAssistant getDaemonStatus
liftAnnex $ do liftAnnex $ do
mapM_ (inRepo . Git.Remote.remove . Remote.name) rs mapM_ (inRepo . Git.Remote.Remove.remove . Remote.name) rs
void remoteListRefresh void remoteListRefresh
removeCreds xmppCredsFile removeCreds xmppCredsFile
liftAssistant $ do liftAssistant $ do

View file

@ -14,6 +14,7 @@ import Assistant.Gpg
import Utility.Gpg import Utility.Gpg
import qualified Git.Command import qualified Git.Command
import qualified Git.Remote import qualified Git.Remote
import qualified Git.Remote.Remove
import qualified Git.Construct import qualified Git.Construct
import qualified Annex.Branch import qualified Annex.Branch
import qualified Git.GCrypt import qualified Git.GCrypt
@ -76,7 +77,7 @@ getGCryptRemoteName u repoloc = do
(M.lookup "name" <=< M.lookup u) <$> readRemoteLog (M.lookup "name" <=< M.lookup u) <$> readRemoteLog
, return Nothing , return Nothing
) )
void $ inRepo $ Git.Remote.remove tmpremote void $ inRepo $ Git.Remote.Remove.remove tmpremote
maybe missing return mname maybe missing return mname
where where
missing = error $ "Cannot find configuration for the gcrypt remote at " ++ repoloc missing = error $ "Cannot find configuration for the gcrypt remote at " ++ repoloc

View file

@ -12,8 +12,6 @@ module Git.Remote where
import Common import Common
import Git import Git
import Git.Types import Git.Types
import qualified Git.Command
import qualified Git.BuildVersion
import Data.Char import Data.Char
import qualified Data.Map as M import qualified Data.Map as M
@ -44,17 +42,6 @@ makeLegalName s = case filter legal $ replace "/" "_" s of
legal '.' = True legal '.' = True
legal c = isAlphaNum c legal c = isAlphaNum c
remove :: RemoteName -> Repo -> IO ()
remove remotename = Git.Command.run
[ Param "remote"
-- name of this subcommand changed
, Param $
if Git.BuildVersion.older "1.8.0"
then "rm"
else "remove"
, Param remotename
]
data RemoteLocation = RemoteUrl String | RemotePath FilePath data RemoteLocation = RemoteUrl String | RemotePath FilePath
remoteLocationIsUrl :: RemoteLocation -> Bool remoteLocationIsUrl :: RemoteLocation -> Bool

27
Git/Remote/Remove.hs Normal file
View file

@ -0,0 +1,27 @@
{- git remote stuff
-
- Copyright 2012 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
{-# LANGUAGE CPP #-}
module Git.Remote.Remove where
import Common
import Git
import Git.Types
import qualified Git.Command
import qualified Git.BuildVersion
remove :: RemoteName -> Repo -> IO ()
remove remotename = Git.Command.run
[ Param "remote"
-- name of this subcommand changed
, Param $
if Git.BuildVersion.older "1.8.0"
then "rm"
else "remove"
, Param remotename
]