-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Hackage and Portage integration tool -- -- A command line tool to manage an overlay of Gentoo ebuilds that are -- generated from a hackage repo of Cabal packages. @package hackport @version 0.7.2.1 module Error -- | Type holding all of the HackPortError constructors. data HackPortError ArgumentError :: String -> HackPortError ConnectionFailed :: String -> String -> HackPortError PackageNotFound :: String -> HackPortError InvalidTarballURL :: String -> String -> HackPortError InvalidSignatureURL :: String -> String -> HackPortError VerificationFailed :: String -> String -> HackPortError DownloadFailed :: String -> String -> HackPortError UnknownCompression :: String -> HackPortError UnpackingFailed :: String -> Int -> HackPortError NoCabalFound :: String -> HackPortError ExtractionFailed :: String -> String -> Int -> HackPortError CabalParseFailed :: String -> String -> HackPortError BashNotFound :: HackPortError BashError :: String -> HackPortError NoOverlay :: HackPortError MultipleOverlays :: [String] -> HackPortError UnknownVerbosityLevel :: String -> HackPortError -- | WrongCacheVersion | InvalidCache InvalidServer :: String -> HackPortError -- | Throw a HackPortError. throwEx :: HackPortError -> IO a -- | Catch a HackPortError. catchEx :: IO a -> (HackPortError -> IO a) -> IO a -- | Show the error string for a given HackPortError. hackPortShowError :: HackPortError -> String instance GHC.Classes.Eq Error.HackPortError instance GHC.Show.Show Error.HackPortError instance GHC.Exception.Type.Exception Error.HackPortError module Paths_hackport version :: Version getBinDir :: IO FilePath getLibDir :: IO FilePath getDynLibDir :: IO FilePath getDataDir :: IO FilePath getLibexecDir :: IO FilePath getDataFileName :: FilePath -> IO FilePath getSysconfDir :: IO FilePath -- | Portage package identifiers, which unlike Cabal ones include a -- category. module Portage.PackageId newtype Category Category :: String -> Category [unCategory] :: Category -> String -- | Portage-style PackageName, containing a Category and a -- PackageName. data PackageName PackageName :: Category -> PackageName -> PackageName [category] :: PackageName -> Category [cabalPkgName] :: PackageName -> PackageName -- | Portage-style PackageId, containing a PackageName and a -- Version. data PackageId PackageId :: PackageName -> Version -> PackageId [packageId] :: PackageId -> PackageName [pkgVersion] :: PackageId -> Version -- | Portage-style version type. data Version Version :: [Int] -> Maybe Char -> [Suffix] -> Int -> Version -- | [1,42,3] ~= 1.42.3 [versionNumber] :: Version -> [Int] -- | optional letter [versionChar] :: Version -> Maybe Char [versionSuffix] :: Version -> [Suffix] -- | revision, 0 means none [versionRevision] :: Version -> Int -- | Create a PackageName from supplied category and package name -- Strings. mkPackageName :: String -> String -> PackageName -- | Create a PackageId from a Category and -- PackageIdentifier. fromCabalPackageId :: Category -> PackageIdentifier -> PackageId -- | Convert a PackageId into a Maybe -- PackageIdentifier. toCabalPackageId :: PackageId -> Maybe PackageIdentifier -- | Parse a String as a package in the form of -- [category/]name[-version]: -- -- Note that we cannot use the parsec function to parse the -- PackageName, since it fails the entire parse if it tries to -- parse a Version. See parseCabalPackageName below. -- -- If parsing a valid package string: -- --
-- >>> parseFriendlyPackage "category-name/package-name1-0.0.0.1a_beta2-r4" -- Right (Just (Category {unCategory = "category-name"}),PackageName "package-name1",Just (Version {versionNumber = [0,0,0,1], versionChar = Just 'a', versionSuffix = [Beta 2], versionRevision = 4})) ---- -- If malformed, return an error string: -- --
-- >>> parseFriendlyPackage "category-name/package-name-1-0.0.0.1a_beta2-r4" -- Left ... --parseFriendlyPackage :: String -> Either String (Maybe Category, PackageName, Maybe Version) -- | Convert a PackageName into lowercase. Internally uses -- cabal_pn_to_PN. -- --
-- >>> normalizeCabalPackageName (Cabal.mkPackageName "FooBar1") -- PackageName "foobar1" --normalizeCabalPackageName :: PackageName -> PackageName -- | Apply normalizeCabalPackageName to the PackageName of a -- supplied PackageIdentifier. normalizeCabalPackageId :: PackageIdentifier -> PackageIdentifier -- | Maybe generate a PackageId from a FilePath. Note that -- the FilePath must have its file extension stripped before being -- passed to filePathToPackageId. -- --
-- >>> filePathToPackageId (Category "dev-haskell") "foo-bar2-3.0.0b_rc2-r1" -- Just (PackageId {packageId = PackageName {category = Category {unCategory = "dev-haskell"}, cabalPkgName = PackageName "foo-bar2"}, pkgVersion = Version {versionNumber = [3,0,0], versionChar = Just 'b', versionSuffix = [RC 2], versionRevision = 1}}) --filePathToPackageId :: Category -> FilePath -> Maybe PackageId -- | Transform a PackageId into a FilePath. -- --
-- >>> packageIdToFilePath (PackageId (PackageName (Category "dev-haskell") (Cabal.mkPackageName "foo-bar2")) (Portage.Version [3,0,0] (Just 'b') [Portage.RC 2] 1 )) -- "dev-haskell/foo-bar2/foo-bar2-3.0.0b_rc2-r1.ebuild" --packageIdToFilePath :: PackageId -> FilePath -- | Pretty-print a lowercase PackageName. -- -- Note the difference between this function and -- normalizeCabalPackageName: this function returns a -- String, the other a PackageName. -- --
-- >>> cabal_pn_to_PN (Cabal.mkPackageName "FooBar1") -- "foobar1" --cabal_pn_to_PN :: PackageName -> String instance GHC.Read.Read Portage.PackageId.Category instance GHC.Show.Show Portage.PackageId.Category instance GHC.Classes.Ord Portage.PackageId.Category instance GHC.Classes.Eq Portage.PackageId.Category instance GHC.Read.Read Portage.PackageId.PackageName instance GHC.Show.Show Portage.PackageId.PackageName instance GHC.Classes.Ord Portage.PackageId.PackageName instance GHC.Classes.Eq Portage.PackageId.PackageName instance GHC.Read.Read Portage.PackageId.PackageId instance GHC.Show.Show Portage.PackageId.PackageId instance GHC.Classes.Ord Portage.PackageId.PackageId instance GHC.Classes.Eq Portage.PackageId.PackageId instance Control.DeepSeq.NFData Portage.PackageId.PackageId instance Distribution.Pretty.Pretty Portage.PackageId.PackageId instance Distribution.Parsec.Parsec Portage.PackageId.PackageId instance Control.DeepSeq.NFData Portage.PackageId.PackageName instance Distribution.Pretty.Pretty Portage.PackageId.PackageName instance Distribution.Parsec.Parsec Portage.PackageId.PackageName instance Control.DeepSeq.NFData Portage.PackageId.Category instance Distribution.Pretty.Pretty Portage.PackageId.Category instance Distribution.Parsec.Parsec Portage.PackageId.Category module Portage.Overlay data ExistingEbuild ExistingEbuild :: PackageId -> PackageIdentifier -> FilePath -> ExistingEbuild [ebuildId] :: ExistingEbuild -> PackageId [ebuildCabalId] :: ExistingEbuild -> PackageIdentifier [ebuildPath] :: ExistingEbuild -> FilePath -- | Type describing an overlay. data Overlay Overlay :: FilePath -> Map PackageName [ExistingEbuild] -> Map PackageName Metadata -> Overlay [overlayPath] :: Overlay -> FilePath [overlayMap] :: Overlay -> Map PackageName [ExistingEbuild] [overlayMetadata] :: Overlay -> Map PackageName Metadata loadLazy :: FilePath -> IO Overlay readOverlay :: DirectoryTree -> [PackageId] readOverlayByPackage :: DirectoryTree -> [(PackageName, [Version])] getDirectoryTree :: FilePath -> IO DirectoryTree type DirectoryTree = [DirectoryEntry] -- | Make sure there is only one ebuild for each version number (by -- selecting the highest ebuild version revision) reduceOverlay :: Overlay -> Overlay filterByEmail :: ([String] -> Bool) -> Overlay -> Overlay -- | Is PackageId found in Overlay? inOverlay :: Overlay -> PackageId -> Bool instance GHC.Classes.Eq Portage.Overlay.ExistingEbuild instance GHC.Classes.Ord Portage.Overlay.ExistingEbuild instance GHC.Show.Show Portage.Overlay.ExistingEbuild instance GHC.Show.Show Portage.Overlay.Overlay instance Distribution.Package.Package Portage.Overlay.ExistingEbuild instance Distribution.Package.HasUnitId Portage.Overlay.ExistingEbuild -- | Core functionality of the merge command of HackPort. module Merge -- | This function is executed by the merge command of -- HackPort. Its functionality is as follows: -- --