module Distribution.Simple.Build.PackageInfoModule
( generatePackageInfoModule
) where
import Distribution.Compat.Prelude
import Prelude ()
import Distribution.Package
( PackageName
, packageName
, packageVersion
, unPackageName
)
import Distribution.Types.PackageDescription (PackageDescription (..))
import Distribution.Types.Version (versionNumbers)
import Distribution.Utils.ShortText (fromShortText)
import qualified Distribution.Simple.Build.PackageInfoModule.Z as Z
generatePackageInfoModule :: PackageDescription -> String
generatePackageInfoModule :: PackageDescription -> String
generatePackageInfoModule PackageDescription
pkg_descr =
Z -> String
Z.render
Z.Z
{ zPackageName :: String
Z.zPackageName = PackageName -> String
showPkgName (PackageName -> String) -> PackageName -> String
forall a b. (a -> b) -> a -> b
$ PackageDescription -> PackageName
forall pkg. Package pkg => pkg -> PackageName
packageName PackageDescription
pkg_descr
, zVersionDigits :: String
Z.zVersionDigits = [Int] -> String
forall a. Show a => a -> String
show ([Int] -> String) -> [Int] -> String
forall a b. (a -> b) -> a -> b
$ Version -> [Int]
versionNumbers (Version -> [Int]) -> Version -> [Int]
forall a b. (a -> b) -> a -> b
$ PackageDescription -> Version
forall pkg. Package pkg => pkg -> Version
packageVersion PackageDescription
pkg_descr
, zSynopsis :: String
Z.zSynopsis = ShortText -> String
fromShortText (ShortText -> String) -> ShortText -> String
forall a b. (a -> b) -> a -> b
$ PackageDescription -> ShortText
synopsis PackageDescription
pkg_descr
, zCopyright :: String
Z.zCopyright = ShortText -> String
fromShortText (ShortText -> String) -> ShortText -> String
forall a b. (a -> b) -> a -> b
$ PackageDescription -> ShortText
copyright PackageDescription
pkg_descr
, zHomepage :: String
Z.zHomepage = ShortText -> String
fromShortText (ShortText -> String) -> ShortText -> String
forall a b. (a -> b) -> a -> b
$ PackageDescription -> ShortText
homepage PackageDescription
pkg_descr
}
showPkgName :: PackageName -> String
showPkgName :: PackageName -> String
showPkgName = (Char -> Char) -> String -> String
forall a b. (a -> b) -> [a] -> [b]
map Char -> Char
fixchar (String -> String)
-> (PackageName -> String) -> PackageName -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PackageName -> String
unPackageName
fixchar :: Char -> Char
fixchar :: Char -> Char
fixchar Char
'-' = Char
'_'
fixchar Char
c = Char
c