-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | What version is the package X in stackage lts-Y.ZZ?
--
-- A command-line tool to look for version numbers for Haskell packages
-- in specific stackage resolvers. See README.md
@package staversion
@version 0.1.2.0
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.Query
type PackageName = Text
-- | Resolver name at stackage like "lts-4.1".
type Resolver = String
-- | Source of packages.
data PackageSource
-- | stackage.
SourceStackage :: Resolver -> PackageSource
-- | hackage (latest)
SourceHackage :: PackageSource
-- | Query for package version(s).
data Query
QueryName :: PackageName -> Query
type ErrorMsg = String
-- | Result for a query.
data Result
Result :: PackageSource -> Query -> Either ErrorMsg ResultVersions -> Result
[resultIn] :: Result -> PackageSource
[resultFor] :: Result -> Query
[resultVersions] :: Result -> Either ErrorMsg ResultVersions
-- | The obtained version map.
data ResultVersions
resultVersionsFromList :: [(PackageName, Maybe Version)] -> ResultVersions
resultVersionsToList :: ResultVersions -> [(PackageName, Maybe Version)]
-- | description of a PackageSource.
sourceDesc :: PackageSource -> Text
instance GHC.Classes.Eq Staversion.Internal.Query.Result
instance GHC.Show.Show Staversion.Internal.Query.Result
instance GHC.Classes.Eq Staversion.Internal.Query.ResultVersions
instance GHC.Show.Show Staversion.Internal.Query.ResultVersions
instance GHC.Classes.Ord Staversion.Internal.Query.Query
instance GHC.Classes.Eq Staversion.Internal.Query.Query
instance GHC.Show.Show Staversion.Internal.Query.Query
instance GHC.Classes.Ord Staversion.Internal.Query.PackageSource
instance GHC.Classes.Eq Staversion.Internal.Query.PackageSource
instance GHC.Show.Show Staversion.Internal.Query.PackageSource
module Staversion.Internal.Log
data LogLevel
LogDebug :: LogLevel
LogInfo :: LogLevel
LogWarn :: LogLevel
LogError :: LogLevel
data Logger
defaultLogger :: Logger
putLog :: Logger -> LogLevel -> String -> IO ()
logDebug :: Logger -> String -> IO ()
logInfo :: Logger -> String -> IO ()
logWarn :: Logger -> String -> IO ()
logError :: Logger -> String -> IO ()
-- | FOR TEST: the IORef is the history of logged messages.
_mockLogger :: IO (Logger, IORef [(LogLevel, String)])
instance GHC.Enum.Bounded Staversion.Internal.Log.LogLevel
instance GHC.Enum.Enum Staversion.Internal.Log.LogLevel
instance GHC.Classes.Ord Staversion.Internal.Log.LogLevel
instance GHC.Classes.Eq Staversion.Internal.Log.LogLevel
instance GHC.Show.Show Staversion.Internal.Log.LogLevel
instance GHC.Show.Show Staversion.Internal.Log.Logger
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.Format
-- | format Results like it's in build-depends in .cabal files.
formatResultsCabal :: [Result] -> Text
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.BuildPlan.Version
-- | Parse a version text. There must not be any trailing characters after
-- a valid version text.
parseVersionText :: Text -> Maybe Version
-- | a wrapper around Version for JSON I/F
newtype VersionJSON
VersionJSON :: Version -> VersionJSON
[unVersionJSON] :: VersionJSON -> Version
instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Version.VersionJSON
instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Version.VersionJSON
instance GHC.Show.Show Staversion.Internal.BuildPlan.Version.VersionJSON
instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Version.VersionJSON
-- | This is an internal module. End-users should not use it.
--
-- This module is meant to be exposed only to
-- Staversion.Internal.BuildPlan and test modules.
module Staversion.Internal.BuildPlan.Stackage
-- | Non-ambiguous fully-resolved resolver for stackage.
data ExactResolver
-- | lts-(major).(minor)
ExactLTS :: Word -> Word -> ExactResolver
-- | nightly-(year)-(month)-(day)
ExactNightly :: Word -> Word -> Word -> ExactResolver
-- | Potentially partial resolver for stackage.
data PartialResolver
PartialExact :: ExactResolver -> PartialResolver
-- | lts (latest)
PartialLTSLatest :: PartialResolver
-- | lts-(major)
PartialLTSMajor :: Word -> PartialResolver
-- | nightly (latest)
PartialNightlyLatest :: PartialResolver
parseResolverString :: Resolver -> Maybe PartialResolver
formatResolverString :: PartialResolver -> Resolver
type Disambiguator = PartialResolver -> Maybe ExactResolver
-- | Fetch the Disambiguator from the Internet.
fetchDisambiguator :: Manager -> IO (Either ErrorMsg Disambiguator)
-- | Fetch build plan YAML data from the Internet.
fetchBuildPlanYAML :: Manager -> ExactResolver -> IO ByteString
parseDisambiguator :: ByteString -> Maybe Disambiguator
instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Stackage.PartialResolver
instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Stackage.PartialResolver
instance GHC.Show.Show Staversion.Internal.BuildPlan.Stackage.PartialResolver
instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Stackage.ExactResolver
instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Stackage.ExactResolver
instance GHC.Show.Show Staversion.Internal.BuildPlan.Stackage.ExactResolver
instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Stackage.DisamMap
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.BuildPlan.Hackage
data RegisteredVersions
fetchPreferredVersions :: Manager -> PackageName -> IO (Either ErrorMsg RegisteredVersions)
latestVersion :: RegisteredVersions -> Maybe Version
parsePreferredVersionsJSON :: ByteString -> Either ErrorMsg RegisteredVersions
instance GHC.Classes.Ord Staversion.Internal.BuildPlan.Hackage.RegisteredVersions
instance GHC.Classes.Eq Staversion.Internal.BuildPlan.Hackage.RegisteredVersions
instance GHC.Show.Show Staversion.Internal.BuildPlan.Hackage.RegisteredVersions
instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.Hackage.RegisteredVersions
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.BuildPlan
-- | A data structure that keeps a map between package names and their
-- versions.
data BuildPlan
packageVersion :: BuildPlan -> PackageName -> Maybe Version
-- | Stateful manager for BuildPlans.
data BuildPlanManager
newBuildPlanManager :: FilePath -> Logger -> Bool -> IO BuildPlanManager
loadBuildPlan :: BuildPlanManager -> [PackageName] -> PackageSource -> IO (Either ErrorMsg BuildPlan)
-- | Load a BuildPlan from a file.
loadBuildPlanYAML :: FilePath -> IO (Either ErrorMsg BuildPlan)
_setDisambiguator :: BuildPlanManager -> Maybe Disambiguator -> IO ()
instance GHC.Base.Monoid Staversion.Internal.BuildPlan.BuildPlan
instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.BuildPlan
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.Command
-- | Command from the user.
data Command
Command :: FilePath -> Logger -> [PackageSource] -> [Query] -> Bool -> Command
-- | path to the directory where build plan files are stored.
[commBuildPlanDir] :: Command -> FilePath
-- | the logger
[commLogger] :: Command -> Logger
-- | package sources to search
[commSources] :: Command -> [PackageSource]
-- | package queries
[commQueries] :: Command -> [Query]
-- | if True, it accesses the Internet to query build plans etc.
[commAllowNetwork] :: Command -> Bool
parseCommandArgs :: IO Command
instance GHC.Classes.Ord Staversion.Internal.Command.DefCommand
instance GHC.Classes.Eq Staversion.Internal.Command.DefCommand
instance GHC.Show.Show Staversion.Internal.Command.DefCommand
instance GHC.Show.Show Staversion.Internal.Command.Command
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.Exec
main :: IO ()
processCommand :: Command -> IO [Result]