-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | CI Assistant for Haskell projects -- -- CI Assistant for Haskell projects. Implements package caching. @package cabal-cache @version 1.1.0.2 module HaskellWorks.CabalCache.AWS.S3.URI data S3Uri S3Uri :: BucketName -> ObjectKey -> S3Uri [bucket] :: S3Uri -> BucketName [objectKey] :: S3Uri -> ObjectKey instance Control.DeepSeq.NFData HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance GHC.Generics.Generic HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance GHC.Classes.Ord HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance GHC.Classes.Eq HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance GHC.Show.Show HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance Amazonka.Data.Text.FromText HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance Amazonka.Data.Text.ToText HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance Data.Aeson.Types.ToJSON.ToJSON HaskellWorks.CabalCache.AWS.S3.URI.S3Uri instance Data.Aeson.Types.FromJSON.FromJSON HaskellWorks.CabalCache.AWS.S3.URI.S3Uri module HaskellWorks.CabalCache.AppError newtype AwsError AwsError :: Status -> AwsError [$sel:status:AwsError] :: AwsError -> Status data HttpError HttpError :: Request -> HttpExceptionContent -> HttpError [$sel:reasponse:HttpError] :: HttpError -> Request [$sel:content:HttpError] :: HttpError -> HttpExceptionContent class HasStatusCode a statusCodeOf :: HasStatusCode a => a -> Int class HasMaybeStatusCode a maybeStatusCodeOf :: HasMaybeStatusCode a => a -> Maybe Int displayAwsError :: AwsError -> Text displayHttpError :: HttpError -> Text instance GHC.Generics.Generic HaskellWorks.CabalCache.AppError.AwsError instance GHC.Show.Show HaskellWorks.CabalCache.AppError.AwsError instance GHC.Classes.Eq HaskellWorks.CabalCache.AppError.AwsError instance GHC.Generics.Generic HaskellWorks.CabalCache.AppError.HttpError instance GHC.Show.Show HaskellWorks.CabalCache.AppError.HttpError instance HaskellWorks.CabalCache.AppError.HasMaybeStatusCode HaskellWorks.CabalCache.AppError.AwsError instance HaskellWorks.CabalCache.AppError.HasMaybeStatusCode HaskellWorks.CabalCache.AppError.HttpError instance HaskellWorks.CabalCache.AppError.HasStatusCode HaskellWorks.CabalCache.AppError.AwsError module HaskellWorks.CabalCache.AWS.Error handleAwsError :: (MonadCatch m, MonadError (Variant e) m, CouldBeF e AwsError) => m a -> m a module HaskellWorks.CabalCache.Concurrent.Fork forkThreadsWait :: Int -> IO () -> IO () module HaskellWorks.CabalCache.Data.List tuple2ToDL :: (a, a) -> [a] -> [a] tuple2ToList :: (a, a) -> [a] tuple2ToNel :: (a, a) -> NonEmpty a module HaskellWorks.CabalCache.Error data DecodeError DecodeError :: Text -> DecodeError data ExitFailure ExitFailure :: ExitFailure data CopyFailed CopyFailed :: CopyFailed data InvalidUrl InvalidUrl :: Text -> Text -> InvalidUrl data NotFound NotFound :: NotFound data NotImplemented NotImplemented :: Text -> NotImplemented data UnsupportedUri UnsupportedUri :: URI -> Text -> UnsupportedUri instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.DecodeError instance GHC.Show.Show HaskellWorks.CabalCache.Error.DecodeError instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.DecodeError instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.ExitFailure instance GHC.Show.Show HaskellWorks.CabalCache.Error.ExitFailure instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.ExitFailure instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.CopyFailed instance GHC.Show.Show HaskellWorks.CabalCache.Error.CopyFailed instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.CopyFailed instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.InvalidUrl instance GHC.Show.Show HaskellWorks.CabalCache.Error.InvalidUrl instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.InvalidUrl instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.NotFound instance GHC.Show.Show HaskellWorks.CabalCache.Error.NotFound instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.NotFound instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.NotImplemented instance GHC.Show.Show HaskellWorks.CabalCache.Error.NotImplemented instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.NotImplemented instance GHC.Generics.Generic HaskellWorks.CabalCache.Error.UnsupportedUri instance GHC.Show.Show HaskellWorks.CabalCache.Error.UnsupportedUri instance GHC.Classes.Eq HaskellWorks.CabalCache.Error.UnsupportedUri module HaskellWorks.CabalCache.Hash hashStorePath :: String -> String module HaskellWorks.CabalCache.IO.Console putStrLn :: MonadIO m => Text -> m () print :: (MonadIO m, Show a) => a -> m () hPutStrLn :: MonadIO m => Handle -> Text -> m () hPrint :: (MonadIO m, Show a) => Handle -> a -> m () module HaskellWorks.CabalCache.AWS.Env awsLogger :: Maybe LogLevel -> LogLevel -> ByteString -> IO () mkEnv :: Region -> (LogLevel -> ByteString -> IO ()) -> IO Env setEnvEndpoint :: Maybe (ByteString, Int, Bool) -> IO Env -> IO Env module HaskellWorks.CabalCache.IO.File copyDirectoryRecursive :: () => MonadIO m => MonadError (Variant e) m => e `CouldBe` [Char] => String -> String -> m () listMaybeDirectory :: MonadIO m => FilePath -> m [FilePath] module HaskellWorks.CabalCache.IO.Tar data ArchiveError ArchiveError :: Text -> ArchiveError data TarGroup TarGroup :: FilePath -> [FilePath] -> TarGroup [basePath] :: TarGroup -> FilePath [entryPaths] :: TarGroup -> [FilePath] createTar :: () => MonadIO m => MonadError (Variant e) m => e `CouldBe` ArchiveError => Foldable t => [Char] -> t TarGroup -> m () extractTar :: () => MonadIO m => MonadError (Variant e) m => e `CouldBe` ArchiveError => String -> String -> m () instance GHC.Generics.Generic HaskellWorks.CabalCache.IO.Tar.ArchiveError instance GHC.Show.Show HaskellWorks.CabalCache.IO.Tar.ArchiveError instance GHC.Classes.Eq HaskellWorks.CabalCache.IO.Tar.ArchiveError instance Control.DeepSeq.NFData HaskellWorks.CabalCache.IO.Tar.TarGroup instance GHC.Generics.Generic HaskellWorks.CabalCache.IO.Tar.TarGroup instance GHC.Classes.Eq HaskellWorks.CabalCache.IO.Tar.TarGroup instance GHC.Show.Show HaskellWorks.CabalCache.IO.Tar.TarGroup module HaskellWorks.CabalCache.Location class IsPath a s | a -> s () :: IsPath a s => a -> s -> a (<.>) :: IsPath a s => a -> s -> a infixr 5 infixr 7 <.> data Location Uri :: URI -> Location Local :: FilePath -> Location toLocation :: Text -> Maybe Location instance GHC.Generics.Generic HaskellWorks.CabalCache.Location.Location instance GHC.Classes.Eq HaskellWorks.CabalCache.Location.Location instance GHC.Show.Show HaskellWorks.CabalCache.Location.Location instance Amazonka.Data.Text.ToText HaskellWorks.CabalCache.Location.Location instance HaskellWorks.CabalCache.Location.IsPath HaskellWorks.CabalCache.Location.Location Data.Text.Internal.Text instance HaskellWorks.CabalCache.Location.IsPath Data.Text.Internal.Text Data.Text.Internal.Text instance HaskellWorks.CabalCache.Location.IsPath Network.URI.URI Data.Text.Internal.Text instance (a GHC.Types.~ GHC.Types.Char) => HaskellWorks.CabalCache.Location.IsPath [a] [a] instance HaskellWorks.CabalCache.Location.IsPath HaskellWorks.CabalCache.AWS.S3.URI.S3Uri Data.Text.Internal.Text module HaskellWorks.CabalCache.Options readOrFromTextOption :: (Read a, FromText a) => Mod OptionFields a -> Parser a module HaskellWorks.CabalCache.Text maybeStripPrefix :: Text -> Text -> Text module HaskellWorks.CabalCache.Types type CompilerId = Text type PackageId = Text type PackageName = Text newtype CompilerContext CompilerContext :: [String] -> CompilerContext [$sel:ghcPkgCmd:CompilerContext] :: CompilerContext -> [String] newtype Components Components :: Maybe Lib -> Components [$sel:lib:Components] :: Components -> Maybe Lib data PlanJson PlanJson :: CompilerId -> [Package] -> PlanJson [$sel:compilerId:PlanJson] :: PlanJson -> CompilerId [$sel:installPlan:PlanJson] :: PlanJson -> [Package] data Package Package :: Text -> PackageId -> Text -> Text -> Maybe Text -> Maybe Text -> Maybe Components -> [Text] -> [Text] -> Package [$sel:packageType:Package] :: Package -> Text [$sel:id:Package] :: Package -> PackageId [$sel:name:Package] :: Package -> Text [$sel:version:Package] :: Package -> Text [$sel:style:Package] :: Package -> Maybe Text [$sel:componentName:Package] :: Package -> Maybe Text [$sel:components:Package] :: Package -> Maybe Components [$sel:depends:Package] :: Package -> [Text] [$sel:exeDepends:Package] :: Package -> [Text] data Lib Lib :: [Text] -> [Text] -> Lib [$sel:depends:Lib] :: Lib -> [Text] [$sel:exeDepends:Lib] :: Lib -> [Text] instance GHC.Generics.Generic HaskellWorks.CabalCache.Types.Lib instance GHC.Show.Show HaskellWorks.CabalCache.Types.Lib instance GHC.Classes.Eq HaskellWorks.CabalCache.Types.Lib instance GHC.Generics.Generic HaskellWorks.CabalCache.Types.Components instance GHC.Show.Show HaskellWorks.CabalCache.Types.Components instance GHC.Classes.Eq HaskellWorks.CabalCache.Types.Components instance GHC.Generics.Generic HaskellWorks.CabalCache.Types.Package instance GHC.Show.Show HaskellWorks.CabalCache.Types.Package instance GHC.Classes.Eq HaskellWorks.CabalCache.Types.Package instance GHC.Generics.Generic HaskellWorks.CabalCache.Types.PlanJson instance GHC.Show.Show HaskellWorks.CabalCache.Types.PlanJson instance GHC.Classes.Eq HaskellWorks.CabalCache.Types.PlanJson instance GHC.Generics.Generic HaskellWorks.CabalCache.Types.CompilerContext instance GHC.Classes.Eq HaskellWorks.CabalCache.Types.CompilerContext instance GHC.Show.Show HaskellWorks.CabalCache.Types.CompilerContext instance Data.Aeson.Types.FromJSON.FromJSON HaskellWorks.CabalCache.Types.PlanJson instance Data.Aeson.Types.FromJSON.FromJSON HaskellWorks.CabalCache.Types.Package instance Data.Aeson.Types.FromJSON.FromJSON HaskellWorks.CabalCache.Types.Components instance Data.Aeson.Types.FromJSON.FromJSON HaskellWorks.CabalCache.Types.Lib module HaskellWorks.CabalCache.Topology newtype PlanData PlanData :: Set PackageId -> PlanData [nonShareable] :: PlanData -> Set PackageId buildPlanData :: PlanJson -> [PackageId] -> PlanData canShare :: PlanData -> PackageId -> Bool instance GHC.Generics.Generic HaskellWorks.CabalCache.Topology.PlanData module HaskellWorks.CabalCache.GhcPkg system :: [String] -> IO ProcessHandle runGhcPkg :: CompilerContext -> [String] -> IO () testAvailability :: CompilerContext -> IO () recache :: CompilerContext -> FilePath -> IO () contextInit :: CompilerContext -> FilePath -> IO () module HaskellWorks.CabalCache.Core data PackageInfo PackageInfo :: CompilerId -> PackageId -> PackageName -> PackageDir -> Tagged ConfPath Presence -> [Library] -> PackageInfo [$sel:compilerId:PackageInfo] :: PackageInfo -> CompilerId [$sel:packageId:PackageInfo] :: PackageInfo -> PackageId [$sel:packageName:PackageInfo] :: PackageInfo -> PackageName [$sel:packageDir:PackageInfo] :: PackageInfo -> PackageDir [$sel:confPath:PackageInfo] :: PackageInfo -> Tagged ConfPath Presence [$sel:libs:PackageInfo] :: PackageInfo -> [Library] data Tagged a t Tagged :: a -> t -> Tagged a t [$sel:value:Tagged] :: Tagged a t -> a [$sel:tag:Tagged] :: Tagged a t -> t data Presence Present :: Presence Absent :: Presence getPackages :: FilePath -> PlanJson -> IO [PackageInfo] relativePaths :: FilePath -> PackageInfo -> [TarGroup] loadPlan :: () => MonadIO m => MonadError (Variant e) m => e `CouldBe` DecodeError => FilePath -> m PlanJson mkCompilerContext :: () => MonadIO m => MonadCatch m => e `CouldBe` Text => PlanJson -> ExceptT (Variant e) m CompilerContext instance GHC.Generics.Generic HaskellWorks.CabalCache.Core.Presence instance Control.DeepSeq.NFData HaskellWorks.CabalCache.Core.Presence instance GHC.Show.Show HaskellWorks.CabalCache.Core.Presence instance GHC.Classes.Eq HaskellWorks.CabalCache.Core.Presence instance (Control.DeepSeq.NFData a, Control.DeepSeq.NFData t) => Control.DeepSeq.NFData (HaskellWorks.CabalCache.Core.Tagged a t) instance GHC.Generics.Generic (HaskellWorks.CabalCache.Core.Tagged a t) instance (GHC.Show.Show a, GHC.Show.Show t) => GHC.Show.Show (HaskellWorks.CabalCache.Core.Tagged a t) instance (GHC.Classes.Eq a, GHC.Classes.Eq t) => GHC.Classes.Eq (HaskellWorks.CabalCache.Core.Tagged a t) instance Control.DeepSeq.NFData HaskellWorks.CabalCache.Core.PackageInfo instance GHC.Generics.Generic HaskellWorks.CabalCache.Core.PackageInfo instance GHC.Classes.Eq HaskellWorks.CabalCache.Core.PackageInfo instance GHC.Show.Show HaskellWorks.CabalCache.Core.PackageInfo module HaskellWorks.CabalCache.Metadata metaDir :: String createMetadata :: MonadIO m => FilePath -> PackageInfo -> [(Text, ByteString)] -> m TarGroup loadMetadata :: MonadIO m => FilePath -> m (Map Text ByteString) deleteMetadata :: MonadIO m => FilePath -> m () module HaskellWorks.CabalCache.Concurrent.Type data DownloadQueue DownloadQueue :: TVar (Relation ConsumerId ProviderId) -> TVar (Set PackageId) -> TVar (Set PackageId) -> DownloadQueue [$sel:tDependencies:DownloadQueue] :: DownloadQueue -> TVar (Relation ConsumerId ProviderId) [$sel:tUploading:DownloadQueue] :: DownloadQueue -> TVar (Set PackageId) [$sel:tFailures:DownloadQueue] :: DownloadQueue -> TVar (Set PackageId) type ConsumerId = PackageId type ProviderId = PackageId type PackageId = Text instance GHC.Generics.Generic HaskellWorks.CabalCache.Concurrent.Type.DownloadQueue module HaskellWorks.CabalCache.Concurrent.DownloadQueue data DownloadStatus DownloadSuccess :: DownloadStatus DownloadFailure :: DownloadStatus createDownloadQueue :: [(ProviderId, ConsumerId)] -> STM DownloadQueue runQueue :: (MonadIO m, MonadMask m) => DownloadQueue -> (PackageId -> m DownloadStatus) -> m () downloadSucceed :: forall e a m. () => MonadError (Variant e) m => e `CouldBe` DownloadStatus => m a downloadFail :: forall e a m. () => MonadError (Variant e) m => e `CouldBe` DownloadStatus => m a instance GHC.Show.Show HaskellWorks.CabalCache.Concurrent.DownloadQueue.DownloadStatus instance GHC.Classes.Eq HaskellWorks.CabalCache.Concurrent.DownloadQueue.DownloadStatus module HaskellWorks.CabalCache.URI reslashUri :: URI -> URI module HaskellWorks.CabalCache.AWS.S3 uriToS3Uri :: URI -> Either UnsupportedUri S3Uri headS3Uri :: () => MonadError (Variant e) m => e `CouldBe` AwsError => e `CouldBe` UnsupportedUri => MonadCatch m => MonadResource m => Env -> URI -> m HeadObjectResponse getS3Uri :: () => MonadError (Variant e) m => e `CouldBe` AwsError => e `CouldBe` UnsupportedUri => MonadCatch m => MonadResource m => Env -> URI -> m ByteString copyS3Uri :: () => MonadUnliftIO m => e `CouldBe` AwsError => e `CouldBe` CopyFailed => e `CouldBe` UnsupportedUri => Env -> URI -> URI -> ExceptT (Variant e) m () putObject :: () => e `CouldBe` AwsError => e `CouldBe` UnsupportedUri => MonadCatch m => MonadUnliftIO m => ToBody a => Env -> URI -> a -> ExceptT (Variant e) m () module HaskellWorks.CabalCache.IO.Lazy readResource :: () => MonadResource m => MonadCatch m => e `CouldBe` AwsError => e `CouldBe` UnsupportedUri => e `CouldBe` HttpError => e `CouldBe` InvalidUrl => e `CouldBe` NotFound => Env -> Int -> Location -> ExceptT (Variant e) m ByteString readFirstAvailableResource :: () => MonadResource m => MonadCatch m => e `CouldBe` AwsError => e `CouldBe` HttpError => e `CouldBe` InvalidUrl => e `CouldBe` NotFound => e `CouldBe` UnsupportedUri => Env -> NonEmpty Location -> Int -> ExceptT (Variant e) m (ByteString, Location) resourceExists :: () => MonadUnliftIO m => MonadCatch m => e `CouldBe` InvalidUrl => e `CouldBe` UnsupportedUri => Env -> Location -> ExceptT (Variant e) m Bool writeResource :: () => e `CouldBe` AwsError => e `CouldBe` HttpError => e `CouldBe` NotImplemented => e `CouldBe` UnsupportedUri => MonadIO m => MonadCatch m => MonadUnliftIO m => Env -> Location -> Int -> ByteString -> ExceptT (Variant e) m () createLocalDirectoryIfMissing :: (MonadCatch m, MonadIO m) => Location -> m () linkOrCopyResource :: () => MonadUnliftIO m => e `CouldBe` AwsError => e `CouldBe` CopyFailed => e `CouldBe` NotImplemented => e `CouldBe` UnsupportedUri => Env -> Location -> Location -> ExceptT (Variant e) m () readHttpUri :: () => MonadError (Variant e) m => MonadCatch m => e `CouldBe` HttpError => e `CouldBe` InvalidUrl => MonadIO m => URI -> m ByteString removePathRecursive :: () => MonadCatch m => MonadIO m => [Char] -> ExceptT (Variant e) m () retryOnE :: forall e e' m a. () => Monad m => Int -> ExceptT (Variant e') m a -> ExceptT (Variant (e : e')) m a -> ExceptT (Variant e') m a module HaskellWorks.CabalCache.Store cleanupStorePath :: () => MonadIO m => MonadCatch m => FilePath -> ExceptT (Variant e) m () module HaskellWorks.CabalCache.Version archiveVersion :: IsString s => s