module Yu.Core.Info
(
yuCoreVersion
, yuCoreVersionQuote
, yuCoreGitBranchQuote
, yuCoreGitCommitQuote
, yuBuildInfoQuote
) where
import Data.Char
import Data.Time
import Paths_yu_core
import System.Info
import Yu.Import.TH
import Yu.Import.Version
yuCoreVersion :: Version
yuCoreVersion = version
yuCoreVersionQuote :: Q Exp
yuCoreVersionQuote = stringE $ showVersion version
yuCoreGitCommitQuote :: Q Exp
yuCoreGitCommitQuote = gitHash
yuCoreGitBranchQuote :: Q Exp
yuCoreGitBranchQuote = gitBranch
yuBuildInfoQuote :: Q Exp
yuBuildInfoQuote = do
timeStr <- formatTime defaultTimeLocale "-%Y-%m-%d-%H-%M-%S" <$> runIO getCurrentTime
stringE $ os ++ "-" ++ arch ++ "-" ++ map toUpper compilerName
++ "-" ++ showVersion compilerVersion ++ timeStr
++ "-git:" ++ $gitBranch ++ ":" ++ $gitHash