----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple.GHC.IPI642 -- Copyright : (c) The University of Glasgow 2004 -- License : BSD3 -- -- Maintainer : cabal-devel@haskell.org -- Portability : portable -- -- Helper functions for 'Distribution.Simple.GHC.IPI642'. module Distribution.Simple.GHC.IPIConvert ( PackageIdentifier, convertPackageId, License, convertLicense, convertModuleName ) where import Prelude () import Distribution.Compat.Prelude import qualified Distribution.Types.PackageId as Current import qualified Distribution.Types.PackageName as Current import qualified Distribution.License as Current import qualified Distribution.SPDX as SPDX import Distribution.Version import Distribution.ModuleName import Distribution.Text -- | This is a indeed a munged package id, but the constructor name cannot be -- changed or the Read instance (the entire point of this type) will break. data PackageIdentifier = PackageIdentifier { pkgName :: String, pkgVersion :: Version } deriving Read convertPackageId :: PackageIdentifier -> Current.PackageId convertPackageId PackageIdentifier { pkgName = n, pkgVersion = v } = Current.PackageIdentifier (Current.mkPackageName n) v data License = GPL | LGPL | BSD3 | BSD4 | PublicDomain | AllRightsReserved | OtherLicense deriving Read convertModuleName :: String -> ModuleName convertModuleName s = fromMaybe (error "convertModuleName") $ simpleParse s convertLicense :: License -> Either SPDX.License Current.License convertLicense GPL = Right $ Current.GPL Nothing convertLicense LGPL = Right $ Current.LGPL Nothing convertLicense BSD3 = Right $ Current.BSD3 convertLicense BSD4 = Right $ Current.BSD4 convertLicense PublicDomain = Right $ Current.PublicDomain convertLicense AllRightsReserved = Right $ Current.AllRightsReserved convertLicense OtherLicense = Right $ Current.OtherLicense