-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Convert stack projects to cabal.project + cabal.project.freeze
--
-- Convert stack.yaml / package.yaml to
-- cabal.project / cabal.project.freeze/
-- *.cabal.
@package stack2cabal
@version 1.0.4
-- | Duplicates a subset of the Stack ADT. It'd be nice if we could just
-- re-use the actual ADT, but stack isn't available as a library that we
-- can build from Hackage.
module StackageToHackage.Stackage
data Stack
Stack :: ResolverRef -> Maybe Ghc -> [Package] -> [Dep] -> Flags -> Stack
[$sel:resolver:Stack] :: Stack -> ResolverRef
[$sel:compiler:Stack] :: Stack -> Maybe Ghc
[$sel:packages:Stack] :: Stack -> [Package]
[$sel:extraDeps:Stack] :: Stack -> [Dep]
[$sel:flags:Stack] :: Stack -> Flags
localDirs :: Stack -> NonEmpty FilePath
newtype Ghc
Ghc :: Text -> Ghc
data Package
Local :: FilePath -> Package
Location :: Git -> Package
data Git
Git :: Repo -> Commit -> [Subdir] -> Git
[$sel:repo:Git] :: Git -> Repo
[$sel:commit:Git] :: Git -> Commit
[$sel:subdirs:Git] :: Git -> [Subdir]
type Repo = Text
type Commit = Text
type Subdir = Text
data Resolver
Resolver :: Maybe ResolverRef -> Maybe Ghc -> [Dep] -> Flags -> Resolver
[$sel:resolver:Resolver] :: Resolver -> Maybe ResolverRef
[$sel:compiler:Resolver] :: Resolver -> Maybe Ghc
[$sel:deps:Resolver] :: Resolver -> [Dep]
[$sel:flags:Resolver] :: Resolver -> Flags
data ResolverRef
Canned :: Text -> ResolverRef
Snapshot :: Text -> ResolverRef
data Dep
Hackage :: PkgId -> Dep
SourceDep :: Git -> Dep
newtype Flags
Flags :: Map PkgName (Map FlagName Bool) -> Flags
type PkgName = Text
type FlagName = Text
data NewResolver
NewResolver :: Ghc -> [NewDep] -> Flags -> NewResolver
[$sel:compiler:NewResolver] :: NewResolver -> Ghc
[$sel:packages:NewResolver] :: NewResolver -> [NewDep]
[$sel:flags:NewResolver] :: NewResolver -> Flags
data NewDep
NewDep :: PkgId -> NewDep
readStack :: ByteString -> IO Stack
type RelativeResolvers = NonEmpty (Maybe FilePath, Resolver)
type Resolvers = NonEmpty Resolver
unroll :: FilePath -> Stack -> IO Resolvers
resolve :: Maybe FilePath -> ResolverRef -> IO (Maybe FilePath, Resolver)
cache :: Text -> IO FilePath
stack2resolver :: Stack -> Resolver
new2old :: NewResolver -> Resolver
decode1Strict :: FromYAML a => ByteString -> Either String a
newtype PkgId
PkgId :: PackageIdentifier -> PkgId
[$sel:unPkgId:PkgId] :: PkgId -> PackageIdentifier
hoistMaybe :: Alternative m => Maybe a -> m a
instance GHC.Show.Show StackageToHackage.Stackage.Stack
instance GHC.Show.Show StackageToHackage.Stackage.Resolver
instance GHC.Show.Show StackageToHackage.Stackage.Dep
instance GHC.Show.Show StackageToHackage.Stackage.NewResolver
instance GHC.Show.Show StackageToHackage.Stackage.NewDep
instance GHC.Show.Show StackageToHackage.Stackage.PkgId
instance GHC.Base.Semigroup StackageToHackage.Stackage.Flags
instance Data.YAML.FromYAML StackageToHackage.Stackage.Flags
instance GHC.Show.Show StackageToHackage.Stackage.Flags
instance GHC.Show.Show StackageToHackage.Stackage.ResolverRef
instance GHC.Show.Show StackageToHackage.Stackage.Package
instance GHC.Show.Show StackageToHackage.Stackage.Git
instance Data.YAML.FromYAML StackageToHackage.Stackage.Ghc
instance GHC.Show.Show StackageToHackage.Stackage.Ghc
instance Data.YAML.FromYAML StackageToHackage.Stackage.Stack
instance GHC.Base.Semigroup StackageToHackage.Stackage.Resolver
instance Data.YAML.FromYAML StackageToHackage.Stackage.Resolver
instance Data.YAML.FromYAML StackageToHackage.Stackage.Dep
instance Data.YAML.FromYAML StackageToHackage.Stackage.NewResolver
instance Data.YAML.FromYAML StackageToHackage.Stackage.NewDep
instance Data.YAML.FromYAML StackageToHackage.Stackage.PkgId
instance Data.YAML.FromYAML StackageToHackage.Stackage.ResolverRef
instance Data.YAML.FromYAML StackageToHackage.Stackage.Package
instance Data.YAML.FromYAML StackageToHackage.Stackage.Git
-- | A simplistic model of cabal multi-package files and convertors from
-- Stackage.
module StackageToHackage.Hackage
-- | Converts a stack.yaml (and list of local packages) to cabal.project
-- and cabal.project.freeze.
stackToCabal :: [PackageName] -> FilePath -> Stack -> IO (Project, Freeze)
data Project
Project :: Ghc -> NonEmpty FilePath -> [Git] -> Project
printProject :: Project -> Text
data Freeze
Freeze :: [PackageIdentifier] -> Flags -> Freeze
printFreeze :: Freeze -> Text
instance GHC.Show.Show StackageToHackage.Hackage.Freeze
instance GHC.Show.Show StackageToHackage.Hackage.Project