{-# LANGUAGE CPP #-}
#ifdef GIT_REV
{-# LANGUAGE TemplateHaskell #-}
#endif
module Distribution.Client.Version
( cabalInstallVersion
, cabalInstallGitInfo
) where
import Distribution.Version
import qualified Paths_cabal_install as PackageInfo
#ifdef GIT_REV
import Data.Either (isLeft)
import GitHash
( giHash
, giBranch
, giCommitDate
, tGitInfoCwdTry
)
#endif
cabalInstallVersion :: Version
cabalInstallVersion :: Version
cabalInstallVersion = Version -> Version
mkVersion' Version
PackageInfo.version
cabalInstallGitInfo :: String
#ifdef GIT_REV
cabalInstallGitInfo = if giHash' == ""
then ""
else concat [ "(commit "
, giHash'
, branchInfo
, ", "
, either (const "") giCommitDate gi'
, ")"
]
where
gi' = $$tGitInfoCwdTry
giHash' = take 7 . either (const "") giHash $ gi'
branchInfo | isLeft gi' = ""
| either id giBranch gi' == "master" = ""
| otherwise = " on " <> either id giBranch gi'
#else
cabalInstallGitInfo :: String
cabalInstallGitInfo = String
""
#endif