{-# LANGUAGE CPP #-}
{-# OPTIONS -Wall #-}
module Debian.Debianize.Details
( debianDefaults
) where
import Control.Lens
import Data.Map as Map (insert)
import Debian.Debianize.DebianName (mapCabal, splitCabal)
import Debian.Debianize.Monad (CabalT)
import Debian.Debianize.CabalInfo as A (epochMap, debInfo)
import Debian.Debianize.DebInfo as D (execMap)
import Debian.Debianize.VersionSplits (DebBase(DebBase))
import Debian.Relation (BinPkgName(BinPkgName), Relation(Rel))
import Distribution.Package (mkPackageName)
import Distribution.Version (mkVersion)
debianDefaults :: Monad m => CabalT m ()
debianDefaults :: forall (m :: * -> *). Monad m => CabalT m ()
debianDefaults =
do
Lens' CabalInfo (Map PackageName Int)
A.epochMap forall s (m :: * -> *) a b.
MonadState s m =>
ASetter s s a b -> (a -> b) -> m ()
%= forall k a. Ord k => k -> a -> Map k a -> Map k a
Map.insert (String -> PackageName
mkPackageName String
"HaXml") Int
1
Lens' CabalInfo (Map PackageName Int)
A.epochMap forall s (m :: * -> *) a b.
MonadState s m =>
ASetter s s a b -> (a -> b) -> m ()
%= forall k a. Ord k => k -> a -> Map k a -> Map k a
Map.insert (String -> PackageName
mkPackageName String
"HTTP") Int
1
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (\String
name -> (Lens' CabalInfo DebInfo
A.debInfo forall b c a. (b -> c) -> (a -> b) -> a -> c
. Lens' DebInfo (Map String Relations)
D.execMap) forall s (m :: * -> *) a b.
MonadState s m =>
ASetter s s a b -> (a -> b) -> m ()
%= forall k a. Ord k => k -> a -> Map k a -> Map k a
Map.insert String
name [[BinPkgName -> Maybe VersionReq -> Maybe ArchitectureReq -> Relation
Rel (String -> BinPkgName
BinPkgName String
name) forall a. Maybe a
Nothing forall a. Maybe a
Nothing]])
[String
"alex", String
"c2hs", String
"ghc", String
"happy", String
"hsx2hs"]
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"QuickCheck") (String -> DebBase
DebBase String
"quickcheck2")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"gtk2hs-buildtools") (String -> DebBase
DebBase String
"gtk2hs-buildtools")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"haskell-src-exts") (String -> DebBase
DebBase String
"src-exts")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"haskell-src-exts-simple") (String -> DebBase
DebBase String
"src-exts-simple")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"haskell-src-exts-util") (String -> DebBase
DebBase String
"src-exts-util")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"haskell-src-meta") (String -> DebBase
DebBase String
"src-meta")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"Cabal") (String -> DebBase
DebBase String
"cabal")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> CabalT m ()
mapCabal (String -> PackageName
mkPackageName String
"happstack-authenticate") (String -> DebBase
DebBase String
"happstack-authenticate")
forall (m :: * -> *).
Monad m =>
PackageName -> DebBase -> Version -> CabalT m ()
splitCabal (String -> PackageName
mkPackageName String
"happstack-authenticate") (String -> DebBase
DebBase String
"happstack-authenticate-0") ([Int] -> Version
mkVersion [Int
2])