packages feed

cabalmdvrpm-0.0.1: cabalmdvspec.hs

-- #!/usr/bin/runhaskell

module Main where

import Distribution.MDV.Rpm
import Distribution.PackageDescription
import System
import Data.List
import Directory
import Control.Monad (fmap)

main = do
    mycabal <- readPackageDescription =<< findcabal
    let myoptions = defaultsSpecOptions
    let specfile = (rpmpkgName myoptions mycabal) ++ ".spec"
    writeFile specfile (buildSpec defaultsSpecOptions mycabal)
    putStrLn $ specfile ++ " written !"

findcabal = do
    args <- getArgs
    cfiles <- cabalfiles `fmap` getDirectoryContents "."
    case (args, cfiles)  of
      (a:_, _)   -> return a
      ([] , c:_) -> return c
      _          -> error $ "Please specify one of " ++ show cfiles
    where cabalfiles = filter (isSuffixOf ".cabal")