aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CabalHelper/Compiletime/Data.hs1
-rw-r--r--src/CabalHelper/Runtime/Licenses.hs125
-rw-r--r--src/CabalHelper/Runtime/Main.hs13
3 files changed, 2 insertions, 137 deletions
diff --git a/src/CabalHelper/Compiletime/Data.hs b/src/CabalHelper/Compiletime/Data.hs
index 4e512db..818f626 100644
--- a/src/CabalHelper/Compiletime/Data.hs
+++ b/src/CabalHelper/Compiletime/Data.hs
@@ -74,7 +74,6 @@ createHelperSources dir = do
sourceFiles :: [(FilePath, String)]
sourceFiles =
[ ("Runtime/Main.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "src/CabalHelper/Runtime/Main.hs")))
- , ("Runtime/Licenses.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "src/CabalHelper/Runtime/Licenses.hs")))
, ("Shared/Common.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "src/CabalHelper/Shared/Common.hs")))
, ("Shared/Sandbox.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "src/CabalHelper/Shared/Sandbox.hs")))
, ("Shared/InterfaceTypes.hs", $(LitE . StringL <$> runIO (UTF8.toString <$> BS.readFile "src/CabalHelper/Shared/InterfaceTypes.hs")))
diff --git a/src/CabalHelper/Runtime/Licenses.hs b/src/CabalHelper/Runtime/Licenses.hs
deleted file mode 100644
index a1794ea..0000000
--- a/src/CabalHelper/Runtime/Licenses.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE CPP #-}
-
-#ifdef MIN_VERSION_Cabal
-#undef CH_MIN_VERSION_Cabal
-#define CH_MIN_VERSION_Cabal MIN_VERSION_Cabal
-#endif
-
-module CabalHelper.Runtime.Licenses (
- displayDependencyLicenseList
- , groupByLicense
- , getDependencyInstalledPackageInfos
- ) where
-
--- Copyright (c) 2014, Jasper Van der Jeugt <m@jaspervdj.be>
-
---------------------------------------------------------------------------------
-import Control.Arrow ((***), (&&&))
-import Control.Monad (forM_, unless)
-import Data.List (foldl', sort)
-import Data.Maybe (catMaybes)
-import Data.Set (Set)
-import qualified Data.Set as Set
-import System.Directory (getDirectoryContents)
-import System.Exit (exitFailure)
-import System.FilePath (takeExtension)
-import System.IO (hPutStrLn, stderr)
-
-import Distribution.InstalledPackageInfo
-import Distribution.License
-import Distribution.Package
-import Distribution.Simple.Configure
-import Distribution.Simple.LocalBuildInfo
-import Distribution.Simple.PackageIndex
-import Distribution.Text
-import Distribution.ModuleName
-import Distribution.Version (Version)
---------------------------------------------------------------------------------
-
-
-
-#if CH_MIN_VERSION_Cabal(1,23,0)
--- CPP > 1.22
-type CPackageIndex a = PackageIndex (InstalledPackageInfo)
-#elif CH_MIN_VERSION_Cabal(1,22,0)
--- CPP >= 1.22
-type CPackageIndex a = PackageIndex (InstalledPackageInfo_ a)
-#else
-type CPackageIndex a = PackageIndex
-#endif
-
-#if CH_MIN_VERSION_Cabal(1,23,0)
--- CPP >= 1.23
-type CInstalledPackageId = UnitId
-lookupInstalledPackageId' :: PackageIndex a -> UnitId -> Maybe a
-lookupInstalledPackageId' = lookupUnitId
-#else
-type CInstalledPackageId = InstalledPackageId
-lookupInstalledPackageId' = lookupInstalledPackageId
-#endif
-
-findTransitiveDependencies
- :: CPackageIndex Distribution.ModuleName.ModuleName
- -> Set CInstalledPackageId
- -> Set CInstalledPackageId
-findTransitiveDependencies pkgIdx set0 = go Set.empty (Set.toList set0)
- where
- go set [] = set
- go set (q : queue)
- | q `Set.member` set = go set queue
- | otherwise =
- case lookupInstalledPackageId' pkgIdx q of
- Nothing ->
- -- Not found can mean that the package still needs to be
- -- installed (e.g. a component of the target cabal package).
- -- We can ignore those.
- go set queue
- Just ipi ->
- go (Set.insert q set) (Distribution.InstalledPackageInfo.depends ipi ++ queue)
-
-
---------------------------------------------------------------------------------
-getDependencyInstalledPackageIds
- :: LocalBuildInfo -> Set CInstalledPackageId
-getDependencyInstalledPackageIds lbi =
- findTransitiveDependencies (installedPkgs lbi) $
- Set.fromList $ map fst $ externalPackageDeps lbi
-
---------------------------------------------------------------------------------
-getDependencyInstalledPackageInfos
- :: LocalBuildInfo -> [InstalledPackageInfo]
-getDependencyInstalledPackageInfos lbi = catMaybes $
- map (lookupInstalledPackageId' pkgIdx) $
- Set.toList (getDependencyInstalledPackageIds lbi)
- where
- pkgIdx = installedPkgs lbi
-
-
---------------------------------------------------------------------------------
-groupByLicense
- :: [InstalledPackageInfo]
- -> [(License, [InstalledPackageInfo])]
-groupByLicense = foldl'
- (\assoc ipi -> insertAList (license ipi) ipi assoc) []
- where
- -- 'Cabal.License' doesn't have an 'Ord' instance so we need to use an
- -- association list instead of 'Map'. The number of licenses probably won't
- -- exceed 100 so I think we're alright.
- insertAList :: Eq k => k -> v -> [(k, [v])] -> [(k, [v])]
- insertAList k v [] = [(k, [v])]
- insertAList k v ((k', vs) : kvs)
- | k == k' = (k, v : vs) : kvs
- | otherwise = (k', vs) : insertAList k v kvs
-
-
---------------------------------------------------------------------------------
-displayDependencyLicenseList
- :: [(License, [InstalledPackageInfo])]
- -> [(String, [(String, Version)])]
-displayDependencyLicenseList =
- map (display *** map (getName &&& getVersion))
- where
- getName =
- display . pkgName . sourcePackageId
- getVersion =
- pkgVersion . sourcePackageId
diff --git a/src/CabalHelper/Runtime/Main.hs b/src/CabalHelper/Runtime/Main.hs
index 0234247..49c6789 100644
--- a/src/CabalHelper/Runtime/Main.hs
+++ b/src/CabalHelper/Runtime/Main.hs
@@ -217,8 +217,6 @@ import CabalHelper.Shared.Sandbox
import CabalHelper.Shared.Common
import CabalHelper.Shared.InterfaceTypes
-import CabalHelper.Runtime.Licenses
-
usage :: IO ()
usage = do
prog <- getProgName
@@ -243,7 +241,6 @@ usage = do
++" | entrypoints\n"
++" | needs-build-output\n"
++" | source-dirs\n"
- ++" | licenses\n"
++" ) ...\n"
commands :: [String]
@@ -262,7 +259,7 @@ commands = [ "print-lbi"
, "entrypoints"
, "needs-build-output"
, "source-dirs"
- , "licenses"]
+ ]
main :: IO ()
main = do
@@ -429,12 +426,6 @@ main = do
res <- componentsMap lbi v distdir $$ \_ _ bi -> return $ hsSourceDirs bi
return $ Just $ ChResponseCompList (res ++ [(ChSetupHsName, [])])
- "licenses":[] -> do
- return $ Just $ ChResponseLicenses $
- map (second (map (second toDataVersion))) $
- displayDependencyLicenseList $
- groupByLicense $ getDependencyInstalledPackageInfos lbi
-
"print-lbi":flags ->
case flags of
["--human"] -> print lbi >> return Nothing
@@ -770,7 +761,7 @@ componentEntrypoints (CFLib (ForeignLib{..}))
componentEntrypoints (CExe Executable {..})
= ChExeEntrypoint
#if CH_MIN_VERSION_Cabal(2,0,0)
- --
+ --
( head ((hsSourceDirs buildInfo) ++ ["."]) </> modulePath)
-- modulePath
#else