packages feed

hsdev-0.3.4.0: src/HsDev/Version.hs

{-# 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