module GitHUD.Git.Parse.Branch (
  buildFullyQualifiedRemoteBranchName
  ) where

import Text.Parsec (parse)
import Text.Parsec.String (Parser)
import Text.Parsec.Char (anyChar, string)
import Text.Parsec.Prim (many)

buildFullyQualifiedRemoteBranchName :: String       -- ^ remote
                                    -> String       -- ^ remote Branch Name
                                    -> String
buildFullyQualifiedRemoteBranchName remote branch =
  remote ++ "/" ++ (simpleRemoteBranchName branch)

simpleRemoteBranchName :: String
                       -> String
simpleRemoteBranchName branch =
  either
    (const "")
    id
    (parse remoteBranchParser "" branch)

remoteBranchParser :: Parser String
remoteBranchParser = do
  string "refs/heads/"
  many anyChar