packages feed

shake-cabal 0.1.0.1 → 0.1.0.2

raw patch · 3 files changed

+64/−10 lines, 3 filessetup-changedPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
shake-cabal.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: shake-cabal-version: 0.1.0.1+version: 0.1.0.2 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018 Vanessa McHale@@ -31,7 +31,7 @@     default-language: Haskell2010     ghc-options: -Wall     build-depends:-        base >=4.3 && <5,+        base >=4.8 && <5,         shake >=0.14,         Cabal >=2.2,         directory -any,
src/Development/Shake/Cabal.hs view
@@ -23,6 +23,7 @@ import           Distribution.PackageDescription.Parsec import           Distribution.Pretty import           Distribution.Types.CondTree+import           Distribution.Types.ForeignLib import           Distribution.Types.PackageId import           Distribution.Verbosity                 as Distribution import           Distribution.Version@@ -46,13 +47,28 @@     where processOS "darwin" = "osx"           processOS x        = x --- FIXME: should also work with .x, .cpphs, .y files+-- FIXME: should also work with .x, .cpphs, .y, .c2hs files libraryToFiles :: Library -> [FilePath] libraryToFiles lib = fold [cs, is, hs]     where (cs, is) = (cSources &&& includes) $ libBuildInfo lib           hs = (++ ".hs") . toFilePath <$> explicitLibModules lib -extract :: CondTree a b Library -> [Library]+fileHelper :: (a -> [ModuleName]) -> a -> [FilePath]+fileHelper = (fmap ((++ ".hs") . toFilePath) .)++exeToFiles :: Executable -> [FilePath]+exeToFiles = fileHelper exeModules++testToFiles :: TestSuite -> [FilePath]+testToFiles = fileHelper testModules++benchToFiles :: Benchmark -> [FilePath]+benchToFiles = fileHelper benchmarkModules++foreignToFiles :: ForeignLib -> [FilePath]+foreignToFiles = fileHelper foreignLibModules++extract :: CondTree a b c -> [c] extract (CondNode d _ []) = [d] extract (CondNode d _ bs) = d : (g =<< bs)     where g (CondBranch _ tb fb) = join $ catMaybes [Just $ extract tb, extract <$> fb]@@ -83,10 +99,50 @@     let descr = packageDescription pkg         extraSrc = extraSrcFiles descr         vers = pkgVersion (package descr)++        mkHelper f = (toList . fmap snd . f) pkg+         libs = toList (condLibrary pkg)-        normalSrc = (libraryToFiles <=< extract) =<< libs-        dir = (fmap (++ "/") . hsSourceDirs . libBuildInfo <=< extract) =<< libs-        dirge = ((++) <$> dir <*>)+        exes = mkHelper condExecutables+        subLibs = mkHelper condSubLibraries+        tests = mkHelper condTestSuites+        benches = mkHelper condBenchmarks+        foreigns = mkHelper condForeignLibs++        extractHelper f xs = (f <=< extract) =<< xs++        normalSrc = extractHelper libraryToFiles libs+        exeSrc = extractHelper exeToFiles exes+        subSrc = extractHelper libraryToFiles subLibs+        testSrc = extractHelper testToFiles tests+        benchSrc = extractHelper benchToFiles benches+        foreignSrc = extractHelper foreignToFiles foreigns++        dirHelper f xs = (fmap (++ "/") . hsSourceDirs . f <=< extract) =<< xs++        dir = dirHelper libBuildInfo libs+        exeDir = dirHelper buildInfo exes+        subDirs = dirHelper libBuildInfo subLibs+        testDirs = dirHelper testBuildInfo tests+        benchDirs = dirHelper benchmarkBuildInfo benches+        foreignDirs = dirHelper foreignLibBuildInfo foreigns++        dirgeHelper d = ((++) <$> d <*>)++        dirge = dirgeHelper dir+        dirgeExe = dirgeHelper exeDir+        dirgeSub = dirgeHelper subDirs+        dirgeTest = dirgeHelper testDirs+        dirgeBench = dirgeHelper benchDirs+        dirgeForeign = dirgeHelper foreignDirs+         h = filterM doesFileExist+     norms <- h (dirge normalSrc)-    pure (vers, extraSrc ++ norms)+    exeFiles <- h (dirgeExe exeSrc)+    subFiles <- h (dirgeSub subSrc)+    testFiles <- h (dirgeTest testSrc)+    benchFiles <- h (dirgeBench benchSrc)+    foreignFiles <- h (dirgeForeign foreignSrc)++    pure (vers, extraSrc ++ norms ++ exeFiles ++ subFiles ++ testFiles ++ benchFiles ++ foreignFiles)