packages feed

hackport-0.8.0.0: src/Hackport/Command/MakeEbuild.hs

module Hackport.Command.MakeEbuild
  ( makeEbuildAction
  ) where

import qualified Distribution.Simple.PackageDescription as Cabal
import Distribution.Parsec (simpleParsec)
import qualified Distribution.Verbosity as V

import Error
import Merge

import Hackport.Env

makeEbuildAction :: Env MakeEbuildEnv ()
makeEbuildAction = do
  (_, MakeEbuildEnv catstr cabals flags _) <- ask
  cat <- case simpleParsec catstr of
            Just c -> return c
            Nothing -> throw (ArgumentError ("could not parse category: " ++ catstr))
  forM_ cabals $ \cabalFileName -> do
    pkg <- liftIO $ Cabal.readGenericPackageDescription V.normal cabalFileName
    mergeGenericPackageDescription cat pkg False flags