{-# LANGUAGE TemplateHaskell, PackageImports #-} module HsDev.Version ( cabalVersion ) where import Data.Char import Data.List import Data.Maybe import "template-haskell" Language.Haskell.TH cabalVersion :: ExpQ cabalVersion = do s <- runIO (readFile "hsdev.cabal") let version = listToMaybe $ map (dropWhile isSpace) $ mapMaybe (stripPrefix "version:") $ lines s maybe (fail "Can't detect version") (\v -> [e| v |]) version