summaryrefslogtreecommitdiff
path: root/Assistant/MakeRemote.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Assistant/MakeRemote.hs')
-rw-r--r--Assistant/MakeRemote.hs19
1 files changed, 10 insertions, 9 deletions
diff --git a/Assistant/MakeRemote.hs b/Assistant/MakeRemote.hs
index f49237157..43b046bc9 100644
--- a/Assistant/MakeRemote.hs
+++ b/Assistant/MakeRemote.hs
@@ -16,6 +16,7 @@ import qualified Remote.Rsync as Rsync
import qualified Remote.GCrypt as GCrypt
import qualified Git
import qualified Git.Command
+import qualified Annex
import qualified Annex.SpecialRemote
import Logs.UUID
import Logs.Remote
@@ -122,26 +123,26 @@ makeGitRemote basename location = makeRemote basename location $ \name ->
- Returns the name of the remote. -}
makeRemote :: String -> String -> (RemoteName -> Annex ()) -> Annex RemoteName
makeRemote basename location a = do
- g <- gitRepo
- if not (any samelocation $ Git.remotes g)
+ rs <- Annex.getGitRemotes
+ if not (any samelocation rs)
then do
- let name = uniqueRemoteName basename 0 g
+ let name = uniqueRemoteName basename 0 rs
a name
return name
else return basename
where
samelocation x = Git.repoLocation x == location
-{- Generate an unused name for a remote, adding a number if
- - necessary.
+{- Given a list of all remotes, generate an unused name for a new
+ - remote, adding a number if necessary.
-
- Ensures that the returned name is a legal git remote name. -}
-uniqueRemoteName :: String -> Int -> Git.Repo -> RemoteName
-uniqueRemoteName basename n r
+uniqueRemoteName :: String -> Int -> [Git.Repo] -> RemoteName
+uniqueRemoteName basename n rs
| null namecollision = name
- | otherwise = uniqueRemoteName legalbasename (succ n) r
+ | otherwise = uniqueRemoteName legalbasename (succ n) rs
where
- namecollision = filter samename (Git.remotes r)
+ namecollision = filter samename rs
samename x = Git.remoteName x == Just name
name
| n == 0 = legalbasename