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

View file

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

View file

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

View file

@ -12,8 +12,6 @@ module Git.Remote where
import Common
import Git
import Git.Types
import qualified Git.Command
import qualified Git.BuildVersion
import Data.Char
import qualified Data.Map as M
@ -44,17 +42,6 @@ makeLegalName s = case filter legal $ replace "/" "_" s of
legal '.' = True
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
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
]