-- 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.3.2
-- | 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
-- | description of a PackageSource.
sourceDesc :: PackageSource -> Text
-- | Query for package version(s).
data Query
QueryName :: PackageName -> Query
QueryCabalFile :: FilePath -> Query
parseQuery :: String -> Query
type ErrorMsg = String
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.Cabal
loadCabalFile :: FilePath -> IO (Either ErrorMsg [BuildDepends])
-- | Build target type.
data Target
-- | the library target.
TargetLibrary :: Target
-- | the executable NAME target.
TargetExecutable :: Text -> Target
-- | the test-suite NAME target.
TargetTestSuite :: Text -> Target
-- | the benchmark NAME target.
TargetBenchmark :: Text -> Target
-- | A block of build-depends:.
data BuildDepends
BuildDepends :: Target -> [PackageName] -> BuildDepends
[depsTarget] :: BuildDepends -> Target
[depsPackages] :: BuildDepends -> [PackageName]
instance GHC.Classes.Ord Staversion.Internal.Cabal.BuildDepends
instance GHC.Classes.Eq Staversion.Internal.Cabal.BuildDepends
instance GHC.Show.Show Staversion.Internal.Cabal.BuildDepends
instance GHC.Classes.Ord Staversion.Internal.Cabal.Target
instance GHC.Classes.Eq Staversion.Internal.Cabal.Target
instance GHC.Show.Show Staversion.Internal.Cabal.Target
-- | This is an internal module. End-users should not use it.
module Staversion.Internal.Result
-- | Result for a query.
data Result
Result :: PackageSource -> Query -> Maybe PackageSource -> Either ErrorMsg ResultBody -> Result
[resultIn] :: Result -> PackageSource
[resultFor] :: Result -> Query
-- | the true PackageSource resolved (or redirected) from resultIn,
-- if any.
[resultReallyIn] :: Result -> Maybe PackageSource
[resultBody] :: Result -> Either ErrorMsg ResultBody
data ResultBody
SimpleResultBody :: PackageName -> (Maybe Version) -> ResultBody
CabalResultBody :: FilePath -> Target -> [(PackageName, Maybe Version)] -> ResultBody
instance GHC.Classes.Eq Staversion.Internal.Result.Result
instance GHC.Show.Show Staversion.Internal.Result.Result
instance GHC.Classes.Eq Staversion.Internal.Result.ResultBody
instance GHC.Show.Show Staversion.Internal.Result.ResultBody
-- | 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
formatExactResolverString :: ExactResolver -> 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
-- | Types that have mapping between PackageName and Version.
class HasVersions t
packageVersion :: HasVersions t => t -> PackageName -> Maybe Version
-- | A BuildPlanMap associated with its PackageSource.
data BuildPlan
buildPlanSource :: BuildPlan -> PackageSource
-- | Stateful manager for BuildPlans.
data BuildPlanManager
newBuildPlanManager :: FilePath -> Logger -> Bool -> IO BuildPlanManager
loadBuildPlan :: BuildPlanManager -> [PackageName] -> PackageSource -> IO (Either ErrorMsg BuildPlan)
-- | A data structure that keeps a map between package names and their
-- versions.
data BuildPlanMap
-- | Load a BuildPlanMap from a file.
loadBuildPlanMapYAML :: FilePath -> IO (Either ErrorMsg BuildPlanMap)
_setLTSDisambiguator :: BuildPlanManager -> Word -> Word -> IO ()
instance GHC.Base.Monoid Staversion.Internal.BuildPlan.BuildPlanMap
instance Data.Aeson.Types.FromJSON.FromJSON Staversion.Internal.BuildPlan.BuildPlanMap
instance Staversion.Internal.BuildPlan.HasVersions Staversion.Internal.BuildPlan.BuildPlanMap
instance Staversion.Internal.BuildPlan.HasVersions 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]
_processCommandWithCustomBuildPlanManager :: (BuildPlanManager -> IO BuildPlanManager) -> Command -> IO [Result]
instance GHC.Classes.Ord Staversion.Internal.Exec.ResolvedQuery
instance GHC.Classes.Eq Staversion.Internal.Exec.ResolvedQuery
instance GHC.Show.Show Staversion.Internal.Exec.ResolvedQuery