module CabalBounds.Sections
( sections
) where
import Distribution.PackageDescription (GenericPackageDescription)
import CabalBounds.Args (Args)
import qualified CabalBounds.Args as A
import qualified CabalLenses as CL
sections :: Args -> GenericPackageDescription -> [CL.Section]
sections args pkgDescrp
| ss@(_:_) <- concat [ [ CL.Library | A.library args ]
, map CL.Executable (A.executable args)
, map CL.TestSuite (A.testSuite args)
, map CL.Benchmark (A.benchmark args)
]
= ss
| otherwise
= CL.allSections pkgDescrp