-- 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