summaryrefslogtreecommitdiff
path: root/Build/Version.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Build/Version.hs')
-rw-r--r--Build/Version.hs71
1 files changed, 0 insertions, 71 deletions
diff --git a/Build/Version.hs b/Build/Version.hs
deleted file mode 100644
index d39a0fe..0000000
--- a/Build/Version.hs
+++ /dev/null
@@ -1,71 +0,0 @@
-{- Package version determination, for configure script. -}
-
-{-# OPTIONS_GHC -fno-warn-tabs #-}
-
-module Build.Version where
-
-import Data.List
-import System.Environment
-import Data.Char
-import System.Process
-import Control.Applicative
-import Prelude
-
-import Utility.Monad
-import Utility.Exception
-import Utility.Directory
-
-type Version = String
-
-{- Set when making an official release. (Distribution vendors should set
- - this too.) -}
-isReleaseBuild :: IO Bool
-isReleaseBuild = (== Just "1") <$> catchMaybeIO (getEnv "RELEASE_BUILD")
-
-{- Version is usually based on the major version from the changelog,
- - plus the date of the last commit, plus the git rev of that commit.
- - This works for autobuilds, ad-hoc builds, etc.
- -
- - If git or a git repo is not available, or something goes wrong,
- - or this is a release build, just use the version from the changelog. -}
-getVersion :: IO Version
-getVersion = do
- changelogversion <- getChangelogVersion
- ifM (isReleaseBuild)
- ( return changelogversion
- , catchDefaultIO changelogversion $ do
- let major = takeWhile (/= '.') changelogversion
- autoversion <- takeWhile (\c -> isAlphaNum c || c == '-') <$> readProcess "sh"
- [ "-c"
- , "git log -n 1 --format=format:'%ci %h'| sed -e 's/-//g' -e 's/ .* /-g/'"
- ] ""
- if null autoversion
- then return changelogversion
- else return $ concat [ major, ".", autoversion ]
- )
-
-getChangelogVersion :: IO Version
-getChangelogVersion = do
- changelog <- readFile "CHANGELOG"
- let verline = takeWhile (/= '\n') changelog
- return $ middle (words verline !! 1)
- where
- middle = drop 1 . init
-
-{- Set up cabal file with version. -}
-cabalSetup :: FilePath -> IO ()
-cabalSetup cabalfile = do
- version <- takeWhile (\c -> isDigit c || c == '.')
- <$> getChangelogVersion
- cabal <- readFile cabalfile
- writeFile tmpcabalfile $ unlines $
- map (setfield "Version" version) $
- lines cabal
- renameFile tmpcabalfile cabalfile
- where
- tmpcabalfile = cabalfile++".tmp"
- setfield field value s
- | fullfield `isPrefixOf` s = fullfield ++ value
- | otherwise = s
- where
- fullfield = field ++ ": "