{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE Trustworthy #-}
module Futhark.Version
( version,
versionString,
)
where
import Data.Version
import Development.GitRev
import qualified Paths_futhark
version :: Version
version :: Version
version = Version
Paths_futhark.version
versionString :: String
versionString :: String
versionString =
Version -> String
showVersion Version
version
String -> String -> String
forall a. [a] -> [a] -> [a]
++ if String
used_hash String -> String -> Bool
forall a. Eq a => a -> a -> Bool
/= String
"UNKNOWN"
then String
"\n" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
gitversion
else String
""
where
used_hash :: String
used_hash = Int -> String -> String
forall a. Int -> [a] -> [a]
take Int
7 $(String
gitHash)
gitversion :: String
gitversion =
[String] -> String
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
[ String
"git: ",
String
branch,
String
used_hash,
String
" (",
$(String
gitCommitDate),
String
")",
String
dirty
]
branch :: String
branch
| $(String
gitBranch) String -> String -> Bool
forall a. Eq a => a -> a -> Bool
== String
"master" = String
""
| Bool
otherwise = $(String
gitBranch) String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
" @ "
dirty :: String
dirty
| $(Bool
gitDirtyTracked) = String
" [modified]"
| Bool
otherwise = String
""