hackport-0.4.1: Portage/Tables.hs
-- | Tables of portage specific convertations
module Portage.Tables
( set_build_slot
) where
import Portage.Dependency.Builder
import Portage.Dependency.Types
import Portage.PackageId
import Data.Monoid
set_build_slot :: Dependency -> Dependency
set_build_slot =
overAtom $ \a@(Atom pn dr (DAttr _ u)) ->
case mconcat $ map First $ map (matches a) slottedPkgs of
First (Just s) -> Atom pn dr (DAttr s u)
First Nothing -> Atom pn dr (DAttr AnyBuildTimeSlot u)
where
matches (Atom pn _ _) (nm,s)
| pn == nm = Just s
| otherwise = Nothing
slottedPkgs :: [(PackageName, SlotDepend)]
slottedPkgs =
[ (mkPackageName "dev-haskell" "quickcheck", GivenSlot "2=")
, (mkPackageName "dev-haskell" "hdbc", GivenSlot "2=")
]