cabal-rpm-2.0.0: src/Header.hs
module Header (
withSpecHead,
headerOption,
headerVersion
)
where
import Data.List (isPrefixOf)
import SimpleCmd (removePrefix)
import FileUtils (assertFileNonEmpty)
withSpecHead :: FilePath -> ([String] -> IO a) -> IO a
withSpecHead spec act = do
assertFileNonEmpty spec
readFile spec >>= (act . headerWords)
where
headerWords :: String -> [String]
headerWords = words . head . lines
headerVersion :: [String] -> String
headerVersion headerwords =
let cblrpm = filter ("cabal-rpm-" `isPrefixOf`) headerwords
in case cblrpm of
[nv] -> removePrefix "cabal-rpm-" nv
_ -> "0.9.11"
headerOption :: String -> [String] -> Maybe String
headerOption opt headerwords =
if opt `elem` headerwords
then (Just . head . tail . dropWhile (/= opt)) headerwords
else Nothing