mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Compare commits
5 Commits
release3.1
...
build-time
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e5701b13c | ||
|
|
78beac7598 | ||
|
|
f96830f7de | ||
|
|
1c4cde7c66 | ||
|
|
e0ad7594dd |
3
gf.cabal
3
gf.cabal
@@ -158,7 +158,8 @@ library
|
||||
json >= 0.9.1 && <= 0.11,
|
||||
parallel >= 3.2.1.1 && < 3.3,
|
||||
process >= 1.4.3 && < 1.7,
|
||||
time >= 1.6.0 && <= 1.12.2
|
||||
time >= 1.6.0 && <= 1.12.2,
|
||||
template-haskell >= 2.13.0.0
|
||||
|
||||
hs-source-dirs: src/compiler
|
||||
exposed-modules:
|
||||
|
||||
@@ -1,13 +1,34 @@
|
||||
{-# LANGUAGE CPP #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
|
||||
module GF.Infra.BuildInfo where
|
||||
import System.Info
|
||||
import Data.Version(showVersion)
|
||||
|
||||
import Language.Haskell.TH.Syntax
|
||||
import Control.Monad.IO.Class
|
||||
import Control.Exception
|
||||
import Data.Time hiding (buildTime)
|
||||
import System.Process
|
||||
|
||||
-- Use Template Haskell to get compile time
|
||||
buildTime :: String
|
||||
buildTime = $(do
|
||||
timeZone <- liftIO getCurrentTimeZone
|
||||
time <- liftIO $ utcToLocalTime timeZone <$> getCurrentTime
|
||||
return $ LitE $ StringL $ formatTime defaultTimeLocale "%F %T" time )
|
||||
|
||||
-- Use Template Haskell to get current Git information
|
||||
gitInfo :: String
|
||||
gitInfo = $(do
|
||||
info <- liftIO $ try $ readProcess "git" ["log", "--format=commit %h tag %(describe:tags=true)", "-1"] "" :: Q (Either SomeException String)
|
||||
return $ LitE $ StringL $ either (\_ -> "unavailable") id info )
|
||||
|
||||
{-# NOINLINE buildInfo #-}
|
||||
buildInfo =
|
||||
"Built on "++os++"/"++arch
|
||||
++" with "++compilerName++"-"++showVersion compilerVersion
|
||||
++", flags:"
|
||||
++" with "++compilerName++"-"++showVersion compilerVersion ++ " at " ++ buildTime ++ "\nGit info: " ++ gitInfo
|
||||
++"\nFlags:"
|
||||
#ifdef USE_INTERRUPT
|
||||
++" interrupt"
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user