diff options
Diffstat (limited to 'Git/Remote.hs')
-rw-r--r-- | Git/Remote.hs | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/Git/Remote.hs b/Git/Remote.hs index 5640e9ff2..e853e53cb 100644 --- a/Git/Remote.hs +++ b/Git/Remote.hs @@ -8,15 +8,21 @@ module Git.Remote where import Common +import Git +import qualified Git.Command +import qualified Git.BuildVersion + import Data.Char +type RemoteName = String + {- Construct a legal git remote name out of an arbitrary input string. - - There seems to be no formal definition of this in the git source, - just some ad-hoc checks, and some other things that fail with certian - types of names (like ones starting with '-'). -} -makeLegalName :: String -> String +makeLegalName :: String -> RemoteName makeLegalName s = case filter legal $ replace "/" "_" s of -- it can't be empty [] -> "unnamed" @@ -31,3 +37,14 @@ makeLegalName s = case filter legal $ replace "/" "_" s of legal '_' = True 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 + ] |