packages feed

b9 0.5.8 → 0.5.9

raw patch · 8 files changed

+281/−65 lines, 8 filesdep +boxesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: boxes

API changes (from Hackage documentation)

- B9.ArtifactGenerator: instance Arbitrary ArtifactAssembly
- B9.ArtifactGenerator: instance Arbitrary ArtifactGenerator
- B9.ArtifactGenerator: instance Arbitrary ArtifactSource
- B9.ArtifactGenerator: instance Arbitrary CloudInitType
- B9.ArtifactGenerator: instance Arbitrary InstanceId
- B9.ArtifactGenerator: instance Data ArtifactAssembly
- B9.ArtifactGenerator: instance Data ArtifactTarget
- B9.ArtifactGenerator: instance Data AssembledArtifact
- B9.ArtifactGenerator: instance Data CloudInitType
- B9.ArtifactGenerator: instance Data InstanceId
- B9.ArtifactGenerator: instance Eq ArtifactAssembly
- B9.ArtifactGenerator: instance Eq ArtifactGenerator
- B9.ArtifactGenerator: instance Eq ArtifactSource
- B9.ArtifactGenerator: instance Eq ArtifactTarget
- B9.ArtifactGenerator: instance Eq AssembledArtifact
- B9.ArtifactGenerator: instance Eq CloudInitType
- B9.ArtifactGenerator: instance Eq InstanceId
- B9.ArtifactGenerator: instance Monoid ArtifactGenerator
- B9.ArtifactGenerator: instance Read ArtifactAssembly
- B9.ArtifactGenerator: instance Read ArtifactGenerator
- B9.ArtifactGenerator: instance Read ArtifactSource
- B9.ArtifactGenerator: instance Read ArtifactTarget
- B9.ArtifactGenerator: instance Read AssembledArtifact
- B9.ArtifactGenerator: instance Read CloudInitType
- B9.ArtifactGenerator: instance Read InstanceId
- B9.ArtifactGenerator: instance Show ArtifactAssembly
- B9.ArtifactGenerator: instance Show ArtifactGenerator
- B9.ArtifactGenerator: instance Show ArtifactSource
- B9.ArtifactGenerator: instance Show ArtifactTarget
- B9.ArtifactGenerator: instance Show AssembledArtifact
- B9.ArtifactGenerator: instance Show CloudInitType
- B9.ArtifactGenerator: instance Show InstanceId
- B9.ArtifactGenerator: instance Typeable ArtifactAssembly
- B9.ArtifactGenerator: instance Typeable ArtifactTarget
- B9.ArtifactGenerator: instance Typeable AssembledArtifact
- B9.ArtifactGenerator: instance Typeable CloudInitType
- B9.ArtifactGenerator: instance Typeable InstanceId
- B9.ArtifactGeneratorImpl: agEnv :: CGEnv -> [(String, String)]
- B9.ArtifactGeneratorImpl: agSources :: CGEnv -> [ArtifactSource]
- B9.ArtifactGeneratorImpl: instance Applicative CGParser
- B9.ArtifactGeneratorImpl: instance Data CGError
- B9.ArtifactGeneratorImpl: instance Data SGPerm
- B9.ArtifactGeneratorImpl: instance Data SGType
- B9.ArtifactGeneratorImpl: instance Data e => Data (InstanceGenerator e)
- B9.ArtifactGeneratorImpl: instance Eq CGEnv
- B9.ArtifactGeneratorImpl: instance Eq CGError
- B9.ArtifactGeneratorImpl: instance Eq SGPerm
- B9.ArtifactGeneratorImpl: instance Eq SGSource
- B9.ArtifactGeneratorImpl: instance Eq SGType
- B9.ArtifactGeneratorImpl: instance Eq SourceGenerator
- B9.ArtifactGeneratorImpl: instance Eq e => Eq (InstanceGenerator e)
- B9.ArtifactGeneratorImpl: instance Error CGError
- B9.ArtifactGeneratorImpl: instance Functor CGParser
- B9.ArtifactGeneratorImpl: instance Monad CGParser
- B9.ArtifactGeneratorImpl: instance MonadError CGError CGParser
- B9.ArtifactGeneratorImpl: instance MonadReader CGEnv CGParser
- B9.ArtifactGeneratorImpl: instance MonadWriter [InstanceGenerator CGEnv] CGParser
- B9.ArtifactGeneratorImpl: instance Read CGEnv
- B9.ArtifactGeneratorImpl: instance Read CGError
- B9.ArtifactGeneratorImpl: instance Read SGPerm
- B9.ArtifactGeneratorImpl: instance Read SGSource
- B9.ArtifactGeneratorImpl: instance Read SGType
- B9.ArtifactGeneratorImpl: instance Read SourceGenerator
- B9.ArtifactGeneratorImpl: instance Read e => Read (InstanceGenerator e)
- B9.ArtifactGeneratorImpl: instance Show CGEnv
- B9.ArtifactGeneratorImpl: instance Show CGError
- B9.ArtifactGeneratorImpl: instance Show SGPerm
- B9.ArtifactGeneratorImpl: instance Show SGSource
- B9.ArtifactGeneratorImpl: instance Show SGType
- B9.ArtifactGeneratorImpl: instance Show SourceGenerator
- B9.ArtifactGeneratorImpl: instance Show e => Show (InstanceGenerator e)
- B9.ArtifactGeneratorImpl: instance Typeable CGError
- B9.ArtifactGeneratorImpl: instance Typeable InstanceGenerator
- B9.ArtifactGeneratorImpl: instance Typeable SGPerm
- B9.ArtifactGeneratorImpl: instance Typeable SGType
- B9.ArtifactGeneratorImpl: runCGParser :: CGParser a -> WriterT [InstanceGenerator CGEnv] (ReaderT CGEnv (Either CGError)) a
- B9.B9Config: buildDirRoot :: B9Config -> Maybe FilePath
- B9.B9Config: envVars :: B9Config -> BuildVariables
- B9.B9Config: execEnvType :: B9Config -> ExecEnvType
- B9.B9Config: instance Eq ExecEnvType
- B9.B9Config: instance Eq LogLevel
- B9.B9Config: instance Monoid B9Config
- B9.B9Config: instance Ord ExecEnvType
- B9.B9Config: instance Ord LogLevel
- B9.B9Config: instance Read ExecEnvType
- B9.B9Config: instance Read LogLevel
- B9.B9Config: instance Show B9Config
- B9.B9Config: instance Show ExecEnvType
- B9.B9Config: instance Show LogLevel
- B9.B9Config: keepTempDirs :: B9Config -> Bool
- B9.B9Config: logFile :: B9Config -> Maybe FilePath
- B9.B9Config: profileFile :: B9Config -> Maybe FilePath
- B9.B9Config: repository :: B9Config -> Maybe String
- B9.B9Config: repositoryCache :: B9Config -> Maybe SystemPath
- B9.B9Config: uniqueBuildDirs :: B9Config -> Bool
- B9.B9Config: verbosity :: B9Config -> Maybe LogLevel
- B9.B9Monad: instance Applicative B9
- B9.B9Monad: instance Eq ProfilingEntry
- B9.B9Monad: instance Functor B9
- B9.B9Monad: instance Monad B9
- B9.B9Monad: instance MonadIO B9
- B9.B9Monad: instance MonadState BuildState B9
- B9.B9Monad: instance Show ProfilingEntry
- B9.ConfigUtils: instance Data SystemPath
- B9.ConfigUtils: instance Eq SystemPath
- B9.ConfigUtils: instance Eq UUID
- B9.ConfigUtils: instance Exception IniFileException
- B9.ConfigUtils: instance Exception ReaderException
- B9.ConfigUtils: instance Ord UUID
- B9.ConfigUtils: instance PrintfArg UUID
- B9.ConfigUtils: instance Read SystemPath
- B9.ConfigUtils: instance Read UUID
- B9.ConfigUtils: instance Show IniFileException
- B9.ConfigUtils: instance Show ReaderException
- B9.ConfigUtils: instance Show SystemPath
- B9.ConfigUtils: instance Show UUID
- B9.ConfigUtils: instance Typeable IniFileException
- B9.ConfigUtils: instance Typeable ReaderException
- B9.ConfigUtils: instance Typeable SystemPath
- B9.Content.AST: instance (Arbitrary c, Arbitrary a) => Arbitrary (AST c a)
- B9.Content.AST: instance (Data c, Data a) => Data (AST c a)
- B9.Content.AST: instance (Eq c, Eq a) => Eq (AST c a)
- B9.Content.AST: instance (Read c, Read a) => Read (AST c a)
- B9.Content.AST: instance (Show c, Show a) => Show (AST c a)
- B9.Content.AST: instance ConcatableSyntax ByteString
- B9.Content.AST: instance Typeable AST
- B9.Content.ErlTerms: instance Arbitrary SimpleErlangTerm
- B9.Content.ErlTerms: instance Data SimpleErlangTerm
- B9.Content.ErlTerms: instance Eq SimpleErlangTerm
- B9.Content.ErlTerms: instance Ord SimpleErlangTerm
- B9.Content.ErlTerms: instance Read SimpleErlangTerm
- B9.Content.ErlTerms: instance Show SimpleErlangTerm
- B9.Content.ErlTerms: instance Typeable SimpleErlangTerm
- B9.Content.ErlangPropList: instance ASTish ErlangPropList
- B9.Content.ErlangPropList: instance Arbitrary ErlangPropList
- B9.Content.ErlangPropList: instance ConcatableSyntax ErlangPropList
- B9.Content.ErlangPropList: instance Data ErlangPropList
- B9.Content.ErlangPropList: instance Eq ErlangPropList
- B9.Content.ErlangPropList: instance Read ErlangPropList
- B9.Content.ErlangPropList: instance Semigroup ErlangPropList
- B9.Content.ErlangPropList: instance Show ErlangPropList
- B9.Content.ErlangPropList: instance Typeable ErlangPropList
- B9.Content.Generator: instance Arbitrary Content
- B9.Content.Generator: instance CanRender Content
- B9.Content.Generator: instance Eq Content
- B9.Content.Generator: instance Read Content
- B9.Content.Generator: instance Show Content
- B9.Content.Generator: instance Typeable Content
- B9.Content.StringTemplate: instance Arbitrary SourceFile
- B9.Content.StringTemplate: instance Data SourceFile
- B9.Content.StringTemplate: instance Data SourceFileConversion
- B9.Content.StringTemplate: instance Eq SourceFile
- B9.Content.StringTemplate: instance Eq SourceFileConversion
- B9.Content.StringTemplate: instance Read SourceFile
- B9.Content.StringTemplate: instance Read SourceFileConversion
- B9.Content.StringTemplate: instance Show SourceFile
- B9.Content.StringTemplate: instance Show SourceFileConversion
- B9.Content.StringTemplate: instance Typeable SourceFile
- B9.Content.StringTemplate: instance Typeable SourceFileConversion
- B9.Content.YamlObject: instance ASTish YamlObject
- B9.Content.YamlObject: instance Arbitrary YamlObject
- B9.Content.YamlObject: instance ConcatableSyntax YamlObject
- B9.Content.YamlObject: instance Eq YamlObject
- B9.Content.YamlObject: instance Read YamlObject
- B9.Content.YamlObject: instance Semigroup YamlObject
- B9.Content.YamlObject: instance Show YamlObject
- B9.DiskImages: instance Data FileSystem
- B9.DiskImages: instance Data Image
- B9.DiskImages: instance Data ImageDestination
- B9.DiskImages: instance Data ImageResize
- B9.DiskImages: instance Data ImageSize
- B9.DiskImages: instance Data ImageSource
- B9.DiskImages: instance Data ImageTarget
- B9.DiskImages: instance Data ImageType
- B9.DiskImages: instance Data MountPoint
- B9.DiskImages: instance Data Partition
- B9.DiskImages: instance Data SizeUnit
- B9.DiskImages: instance Eq FileSystem
- B9.DiskImages: instance Eq Image
- B9.DiskImages: instance Eq ImageDestination
- B9.DiskImages: instance Eq ImageResize
- B9.DiskImages: instance Eq ImageSize
- B9.DiskImages: instance Eq ImageSource
- B9.DiskImages: instance Eq ImageTarget
- B9.DiskImages: instance Eq ImageType
- B9.DiskImages: instance Eq MountPoint
- B9.DiskImages: instance Eq Partition
- B9.DiskImages: instance Eq SharedImage
- B9.DiskImages: instance Eq SharedImageBuildId
- B9.DiskImages: instance Eq SharedImageDate
- B9.DiskImages: instance Eq SharedImageName
- B9.DiskImages: instance Eq SizeUnit
- B9.DiskImages: instance Ord SharedImage
- B9.DiskImages: instance Ord SharedImageBuildId
- B9.DiskImages: instance Ord SharedImageDate
- B9.DiskImages: instance Ord SharedImageName
- B9.DiskImages: instance Ord SizeUnit
- B9.DiskImages: instance Read FileSystem
- B9.DiskImages: instance Read Image
- B9.DiskImages: instance Read ImageDestination
- B9.DiskImages: instance Read ImageResize
- B9.DiskImages: instance Read ImageSize
- B9.DiskImages: instance Read ImageSource
- B9.DiskImages: instance Read ImageTarget
- B9.DiskImages: instance Read ImageType
- B9.DiskImages: instance Read MountPoint
- B9.DiskImages: instance Read Partition
- B9.DiskImages: instance Read SharedImage
- B9.DiskImages: instance Read SharedImageBuildId
- B9.DiskImages: instance Read SharedImageDate
- B9.DiskImages: instance Read SharedImageName
- B9.DiskImages: instance Read SizeUnit
- B9.DiskImages: instance Show FileSystem
- B9.DiskImages: instance Show Image
- B9.DiskImages: instance Show ImageDestination
- B9.DiskImages: instance Show ImageResize
- B9.DiskImages: instance Show ImageSize
- B9.DiskImages: instance Show ImageSource
- B9.DiskImages: instance Show ImageTarget
- B9.DiskImages: instance Show ImageType
- B9.DiskImages: instance Show MountPoint
- B9.DiskImages: instance Show Partition
- B9.DiskImages: instance Show SharedImage
- B9.DiskImages: instance Show SharedImageBuildId
- B9.DiskImages: instance Show SharedImageDate
- B9.DiskImages: instance Show SharedImageName
- B9.DiskImages: instance Show SizeUnit
- B9.DiskImages: instance Typeable FileSystem
- B9.DiskImages: instance Typeable Image
- B9.DiskImages: instance Typeable ImageDestination
- B9.DiskImages: instance Typeable ImageResize
- B9.DiskImages: instance Typeable ImageSize
- B9.DiskImages: instance Typeable ImageSource
- B9.DiskImages: instance Typeable ImageTarget
- B9.DiskImages: instance Typeable ImageType
- B9.DiskImages: instance Typeable MountPoint
- B9.DiskImages: instance Typeable Partition
- B9.DiskImages: instance Typeable SizeUnit
- B9.ExecEnv: cpuArch :: Resources -> CPUArch
- B9.ExecEnv: cpuCount :: Resources -> Int
- B9.ExecEnv: envImageMounts :: ExecEnv -> [Mounted Image]
- B9.ExecEnv: envName :: ExecEnv -> String
- B9.ExecEnv: envResources :: ExecEnv -> Resources
- B9.ExecEnv: envSharedDirectories :: ExecEnv -> [SharedDirectory]
- B9.ExecEnv: instance Data CPUArch
- B9.ExecEnv: instance Data RamSize
- B9.ExecEnv: instance Data Resources
- B9.ExecEnv: instance Data SharedDirectory
- B9.ExecEnv: instance Eq CPUArch
- B9.ExecEnv: instance Eq RamSize
- B9.ExecEnv: instance Eq SharedDirectory
- B9.ExecEnv: instance Monoid CPUArch
- B9.ExecEnv: instance Monoid RamSize
- B9.ExecEnv: instance Monoid Resources
- B9.ExecEnv: instance Ord RamSize
- B9.ExecEnv: instance Read CPUArch
- B9.ExecEnv: instance Read RamSize
- B9.ExecEnv: instance Read Resources
- B9.ExecEnv: instance Read SharedDirectory
- B9.ExecEnv: instance Show CPUArch
- B9.ExecEnv: instance Show RamSize
- B9.ExecEnv: instance Show Resources
- B9.ExecEnv: instance Show SharedDirectory
- B9.ExecEnv: instance Typeable CPUArch
- B9.ExecEnv: instance Typeable RamSize
- B9.ExecEnv: instance Typeable Resources
- B9.ExecEnv: instance Typeable SharedDirectory
- B9.ExecEnv: maxMemory :: Resources -> RamSize
- B9.LibVirtLXC: instance Read LXCGuestCapability
- B9.LibVirtLXC: instance Read LibVirtLXCConfig
- B9.LibVirtLXC: instance Show LXCGuestCapability
- B9.LibVirtLXC: instance Show LibVirtLXCConfig
- B9.MBR: chsH :: CHS -> !Word8
- B9.MBR: chs_CLower8 :: CHS -> !Word8
- B9.MBR: chs_CUpper2_S :: CHS -> !Word8
- B9.MBR: instance Show CHS
- B9.MBR: instance Show MBR
- B9.MBR: instance Show PrimaryPartition
- B9.MBR: mbrPart1 :: MBR -> !PrimaryPartition
- B9.MBR: mbrPart2 :: MBR -> !PrimaryPartition
- B9.MBR: mbrPart3 :: MBR -> !PrimaryPartition
- B9.MBR: mbrPart4 :: MBR -> !PrimaryPartition
- B9.MBR: primPartChsEnd :: PrimaryPartition -> !CHS
- B9.MBR: primPartChsStart :: PrimaryPartition -> !CHS
- B9.MBR: primPartLbaStart :: PrimaryPartition -> !Word32
- B9.MBR: primPartPartType :: PrimaryPartition -> !Word8
- B9.MBR: primPartSectors :: PrimaryPartition -> !Word32
- B9.MBR: primPartStatus :: PrimaryPartition -> !Word8
- B9.Repository: instance Data RemoteRepo
- B9.Repository: instance Data RepoCache
- B9.Repository: instance Data SshPrivKey
- B9.Repository: instance Data SshRemoteHost
- B9.Repository: instance Data SshRemoteUser
- B9.Repository: instance Read RemoteRepo
- B9.Repository: instance Read RepoCache
- B9.Repository: instance Read SshPrivKey
- B9.Repository: instance Read SshRemoteHost
- B9.Repository: instance Read SshRemoteUser
- B9.Repository: instance Show RemoteRepo
- B9.Repository: instance Show RepoCache
- B9.Repository: instance Show SshPrivKey
- B9.Repository: instance Show SshRemoteHost
- B9.Repository: instance Show SshRemoteUser
- B9.Repository: instance Typeable RemoteRepo
- B9.Repository: instance Typeable RepoCache
- B9.Repository: instance Typeable SshPrivKey
- B9.Repository: instance Typeable SshRemoteHost
- B9.Repository: instance Typeable SshRemoteUser
- B9.RepositoryIO: instance Eq Repository
- B9.RepositoryIO: instance Ord Repository
- B9.RepositoryIO: instance Read Repository
- B9.RepositoryIO: instance Show Repository
- B9.ShellScript: instance Data CmdVerbosity
- B9.ShellScript: instance Data Script
- B9.ShellScript: instance Eq CmdVerbosity
- B9.ShellScript: instance Eq Script
- B9.ShellScript: instance Monoid Script
- B9.ShellScript: instance Read Cmd
- B9.ShellScript: instance Read CmdVerbosity
- B9.ShellScript: instance Read Cwd
- B9.ShellScript: instance Read Script
- B9.ShellScript: instance Read User
- B9.ShellScript: instance Show Cmd
- B9.ShellScript: instance Show CmdVerbosity
- B9.ShellScript: instance Show Cwd
- B9.ShellScript: instance Show Script
- B9.ShellScript: instance Show User
- B9.ShellScript: instance Typeable CmdVerbosity
- B9.ShellScript: instance Typeable Script
- B9.Vm: instance Data VmScript
- B9.Vm: instance Eq VmScript
- B9.Vm: instance Read VmScript
- B9.Vm: instance Show VmScript
- B9.Vm: instance Typeable VmScript
+ B9.ArtifactGenerator: instance Data.Data.Data B9.ArtifactGenerator.ArtifactAssembly
+ B9.ArtifactGenerator: instance Data.Data.Data B9.ArtifactGenerator.ArtifactTarget
+ B9.ArtifactGenerator: instance Data.Data.Data B9.ArtifactGenerator.AssembledArtifact
+ B9.ArtifactGenerator: instance Data.Data.Data B9.ArtifactGenerator.CloudInitType
+ B9.ArtifactGenerator: instance Data.Data.Data B9.ArtifactGenerator.InstanceId
+ B9.ArtifactGenerator: instance GHC.Base.Monoid B9.ArtifactGenerator.ArtifactGenerator
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.ArtifactAssembly
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.ArtifactGenerator
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.ArtifactSource
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.ArtifactTarget
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.AssembledArtifact
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.CloudInitType
+ B9.ArtifactGenerator: instance GHC.Classes.Eq B9.ArtifactGenerator.InstanceId
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.ArtifactAssembly
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.ArtifactGenerator
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.ArtifactSource
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.ArtifactTarget
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.AssembledArtifact
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.CloudInitType
+ B9.ArtifactGenerator: instance GHC.Read.Read B9.ArtifactGenerator.InstanceId
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.ArtifactAssembly
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.ArtifactGenerator
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.ArtifactSource
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.ArtifactTarget
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.AssembledArtifact
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.CloudInitType
+ B9.ArtifactGenerator: instance GHC.Show.Show B9.ArtifactGenerator.InstanceId
+ B9.ArtifactGenerator: instance Test.QuickCheck.Arbitrary.Arbitrary B9.ArtifactGenerator.ArtifactAssembly
+ B9.ArtifactGenerator: instance Test.QuickCheck.Arbitrary.Arbitrary B9.ArtifactGenerator.ArtifactGenerator
+ B9.ArtifactGenerator: instance Test.QuickCheck.Arbitrary.Arbitrary B9.ArtifactGenerator.ArtifactSource
+ B9.ArtifactGenerator: instance Test.QuickCheck.Arbitrary.Arbitrary B9.ArtifactGenerator.CloudInitType
+ B9.ArtifactGenerator: instance Test.QuickCheck.Arbitrary.Arbitrary B9.ArtifactGenerator.InstanceId
+ B9.ArtifactGeneratorImpl: [agEnv] :: CGEnv -> [(String, String)]
+ B9.ArtifactGeneratorImpl: [agSources] :: CGEnv -> [ArtifactSource]
+ B9.ArtifactGeneratorImpl: [runCGParser] :: CGParser a -> WriterT [InstanceGenerator CGEnv] (ReaderT CGEnv (Either CGError)) a
+ B9.ArtifactGeneratorImpl: instance Control.Monad.Error.Class.MonadError B9.ArtifactGeneratorImpl.CGError B9.ArtifactGeneratorImpl.CGParser
+ B9.ArtifactGeneratorImpl: instance Control.Monad.Reader.Class.MonadReader B9.ArtifactGeneratorImpl.CGEnv B9.ArtifactGeneratorImpl.CGParser
+ B9.ArtifactGeneratorImpl: instance Control.Monad.Trans.Error.Error B9.ArtifactGeneratorImpl.CGError
+ B9.ArtifactGeneratorImpl: instance Control.Monad.Writer.Class.MonadWriter [B9.ArtifactGeneratorImpl.InstanceGenerator B9.ArtifactGeneratorImpl.CGEnv] B9.ArtifactGeneratorImpl.CGParser
+ B9.ArtifactGeneratorImpl: instance Data.Data.Data B9.ArtifactGeneratorImpl.CGError
+ B9.ArtifactGeneratorImpl: instance Data.Data.Data B9.ArtifactGeneratorImpl.SGPerm
+ B9.ArtifactGeneratorImpl: instance Data.Data.Data B9.ArtifactGeneratorImpl.SGType
+ B9.ArtifactGeneratorImpl: instance Data.Data.Data e => Data.Data.Data (B9.ArtifactGeneratorImpl.InstanceGenerator e)
+ B9.ArtifactGeneratorImpl: instance GHC.Base.Applicative B9.ArtifactGeneratorImpl.CGParser
+ B9.ArtifactGeneratorImpl: instance GHC.Base.Functor B9.ArtifactGeneratorImpl.CGParser
+ B9.ArtifactGeneratorImpl: instance GHC.Base.Monad B9.ArtifactGeneratorImpl.CGParser
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq B9.ArtifactGeneratorImpl.CGEnv
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq B9.ArtifactGeneratorImpl.CGError
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq B9.ArtifactGeneratorImpl.SGPerm
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq B9.ArtifactGeneratorImpl.SGSource
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq B9.ArtifactGeneratorImpl.SGType
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq B9.ArtifactGeneratorImpl.SourceGenerator
+ B9.ArtifactGeneratorImpl: instance GHC.Classes.Eq e => GHC.Classes.Eq (B9.ArtifactGeneratorImpl.InstanceGenerator e)
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read B9.ArtifactGeneratorImpl.CGEnv
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read B9.ArtifactGeneratorImpl.CGError
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read B9.ArtifactGeneratorImpl.SGPerm
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read B9.ArtifactGeneratorImpl.SGSource
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read B9.ArtifactGeneratorImpl.SGType
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read B9.ArtifactGeneratorImpl.SourceGenerator
+ B9.ArtifactGeneratorImpl: instance GHC.Read.Read e => GHC.Read.Read (B9.ArtifactGeneratorImpl.InstanceGenerator e)
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show B9.ArtifactGeneratorImpl.CGEnv
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show B9.ArtifactGeneratorImpl.CGError
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show B9.ArtifactGeneratorImpl.SGPerm
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show B9.ArtifactGeneratorImpl.SGSource
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show B9.ArtifactGeneratorImpl.SGType
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show B9.ArtifactGeneratorImpl.SourceGenerator
+ B9.ArtifactGeneratorImpl: instance GHC.Show.Show e => GHC.Show.Show (B9.ArtifactGeneratorImpl.InstanceGenerator e)
+ B9.B9Config: [buildDirRoot] :: B9Config -> Maybe FilePath
+ B9.B9Config: [envVars] :: B9Config -> BuildVariables
+ B9.B9Config: [execEnvType] :: B9Config -> ExecEnvType
+ B9.B9Config: [interactive] :: B9Config -> Bool
+ B9.B9Config: [keepTempDirs] :: B9Config -> Bool
+ B9.B9Config: [logFile] :: B9Config -> Maybe FilePath
+ B9.B9Config: [profileFile] :: B9Config -> Maybe FilePath
+ B9.B9Config: [repositoryCache] :: B9Config -> Maybe SystemPath
+ B9.B9Config: [repository] :: B9Config -> Maybe String
+ B9.B9Config: [uniqueBuildDirs] :: B9Config -> Bool
+ B9.B9Config: [verbosity] :: B9Config -> Maybe LogLevel
+ B9.B9Config: instance GHC.Base.Monoid B9.B9Config.B9Config
+ B9.B9Config: instance GHC.Classes.Eq B9.B9Config.ExecEnvType
+ B9.B9Config: instance GHC.Classes.Eq B9.B9Config.LogLevel
+ B9.B9Config: instance GHC.Classes.Ord B9.B9Config.ExecEnvType
+ B9.B9Config: instance GHC.Classes.Ord B9.B9Config.LogLevel
+ B9.B9Config: instance GHC.Read.Read B9.B9Config.ExecEnvType
+ B9.B9Config: instance GHC.Read.Read B9.B9Config.LogLevel
+ B9.B9Config: instance GHC.Show.Show B9.B9Config.B9Config
+ B9.B9Config: instance GHC.Show.Show B9.B9Config.ExecEnvType
+ B9.B9Config: instance GHC.Show.Show B9.B9Config.LogLevel
+ B9.B9Monad: instance Control.Monad.IO.Class.MonadIO B9.B9Monad.B9
+ B9.B9Monad: instance Control.Monad.State.Class.MonadState B9.B9Monad.BuildState B9.B9Monad.B9
+ B9.B9Monad: instance GHC.Base.Applicative B9.B9Monad.B9
+ B9.B9Monad: instance GHC.Base.Functor B9.B9Monad.B9
+ B9.B9Monad: instance GHC.Base.Monad B9.B9Monad.B9
+ B9.B9Monad: instance GHC.Classes.Eq B9.B9Monad.ProfilingEntry
+ B9.B9Monad: instance GHC.Show.Show B9.B9Monad.ProfilingEntry
+ B9.ConfigUtils: instance Data.Data.Data B9.ConfigUtils.SystemPath
+ B9.ConfigUtils: instance GHC.Classes.Eq B9.ConfigUtils.SystemPath
+ B9.ConfigUtils: instance GHC.Classes.Eq B9.ConfigUtils.UUID
+ B9.ConfigUtils: instance GHC.Classes.Ord B9.ConfigUtils.UUID
+ B9.ConfigUtils: instance GHC.Exception.Exception B9.ConfigUtils.IniFileException
+ B9.ConfigUtils: instance GHC.Exception.Exception B9.ConfigUtils.ReaderException
+ B9.ConfigUtils: instance GHC.Read.Read B9.ConfigUtils.SystemPath
+ B9.ConfigUtils: instance GHC.Read.Read B9.ConfigUtils.UUID
+ B9.ConfigUtils: instance GHC.Show.Show B9.ConfigUtils.IniFileException
+ B9.ConfigUtils: instance GHC.Show.Show B9.ConfigUtils.ReaderException
+ B9.ConfigUtils: instance GHC.Show.Show B9.ConfigUtils.SystemPath
+ B9.ConfigUtils: instance GHC.Show.Show B9.ConfigUtils.UUID
+ B9.ConfigUtils: instance Text.Printf.PrintfArg B9.ConfigUtils.UUID
+ B9.Content.AST: instance (Data.Data.Data c, Data.Data.Data a) => Data.Data.Data (B9.Content.AST.AST c a)
+ B9.Content.AST: instance (GHC.Classes.Eq c, GHC.Classes.Eq a) => GHC.Classes.Eq (B9.Content.AST.AST c a)
+ B9.Content.AST: instance (GHC.Read.Read c, GHC.Read.Read a) => GHC.Read.Read (B9.Content.AST.AST c a)
+ B9.Content.AST: instance (GHC.Show.Show c, GHC.Show.Show a) => GHC.Show.Show (B9.Content.AST.AST c a)
+ B9.Content.AST: instance (Test.QuickCheck.Arbitrary.Arbitrary c, Test.QuickCheck.Arbitrary.Arbitrary a) => Test.QuickCheck.Arbitrary.Arbitrary (B9.Content.AST.AST c a)
+ B9.Content.AST: instance B9.Content.AST.ConcatableSyntax Data.ByteString.Internal.ByteString
+ B9.Content.ErlTerms: instance Data.Data.Data B9.Content.ErlTerms.SimpleErlangTerm
+ B9.Content.ErlTerms: instance GHC.Classes.Eq B9.Content.ErlTerms.SimpleErlangTerm
+ B9.Content.ErlTerms: instance GHC.Classes.Ord B9.Content.ErlTerms.SimpleErlangTerm
+ B9.Content.ErlTerms: instance GHC.Read.Read B9.Content.ErlTerms.SimpleErlangTerm
+ B9.Content.ErlTerms: instance GHC.Show.Show B9.Content.ErlTerms.SimpleErlangTerm
+ B9.Content.ErlTerms: instance Test.QuickCheck.Arbitrary.Arbitrary B9.Content.ErlTerms.SimpleErlangTerm
+ B9.Content.ErlangPropList: instance B9.Content.AST.ASTish B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance B9.Content.AST.ConcatableSyntax B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance Data.Data.Data B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance Data.Semigroup.Semigroup B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance GHC.Classes.Eq B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance GHC.Read.Read B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance GHC.Show.Show B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.ErlangPropList: instance Test.QuickCheck.Arbitrary.Arbitrary B9.Content.ErlangPropList.ErlangPropList
+ B9.Content.Generator: instance B9.Content.AST.CanRender B9.Content.Generator.Content
+ B9.Content.Generator: instance GHC.Classes.Eq B9.Content.Generator.Content
+ B9.Content.Generator: instance GHC.Read.Read B9.Content.Generator.Content
+ B9.Content.Generator: instance GHC.Show.Show B9.Content.Generator.Content
+ B9.Content.Generator: instance Test.QuickCheck.Arbitrary.Arbitrary B9.Content.Generator.Content
+ B9.Content.StringTemplate: instance Data.Data.Data B9.Content.StringTemplate.SourceFile
+ B9.Content.StringTemplate: instance Data.Data.Data B9.Content.StringTemplate.SourceFileConversion
+ B9.Content.StringTemplate: instance GHC.Classes.Eq B9.Content.StringTemplate.SourceFile
+ B9.Content.StringTemplate: instance GHC.Classes.Eq B9.Content.StringTemplate.SourceFileConversion
+ B9.Content.StringTemplate: instance GHC.Read.Read B9.Content.StringTemplate.SourceFile
+ B9.Content.StringTemplate: instance GHC.Read.Read B9.Content.StringTemplate.SourceFileConversion
+ B9.Content.StringTemplate: instance GHC.Show.Show B9.Content.StringTemplate.SourceFile
+ B9.Content.StringTemplate: instance GHC.Show.Show B9.Content.StringTemplate.SourceFileConversion
+ B9.Content.StringTemplate: instance Test.QuickCheck.Arbitrary.Arbitrary B9.Content.StringTemplate.SourceFile
+ B9.Content.YamlObject: instance B9.Content.AST.ASTish B9.Content.YamlObject.YamlObject
+ B9.Content.YamlObject: instance B9.Content.AST.ConcatableSyntax B9.Content.YamlObject.YamlObject
+ B9.Content.YamlObject: instance Data.Semigroup.Semigroup B9.Content.YamlObject.YamlObject
+ B9.Content.YamlObject: instance GHC.Classes.Eq B9.Content.YamlObject.YamlObject
+ B9.Content.YamlObject: instance GHC.Read.Read B9.Content.YamlObject.YamlObject
+ B9.Content.YamlObject: instance GHC.Show.Show B9.Content.YamlObject.YamlObject
+ B9.Content.YamlObject: instance Test.QuickCheck.Arbitrary.Arbitrary B9.Content.YamlObject.YamlObject
+ B9.DiskImageBuilder: getSelectedRepos :: B9 [RemoteRepo]
+ B9.DiskImageBuilder: getSharedImagesCacheDir :: B9 FilePath
+ B9.DiskImages: imageFileName :: Image -> FilePath
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.FileSystem
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.Image
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.ImageDestination
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.ImageResize
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.ImageSize
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.ImageSource
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.ImageTarget
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.ImageType
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.MountPoint
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.Partition
+ B9.DiskImages: instance Data.Data.Data B9.DiskImages.SizeUnit
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.FileSystem
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.Image
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.ImageDestination
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.ImageResize
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.ImageSize
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.ImageSource
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.ImageTarget
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.ImageType
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.MountPoint
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.Partition
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.SharedImage
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.SharedImageBuildId
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.SharedImageDate
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.SharedImageName
+ B9.DiskImages: instance GHC.Classes.Eq B9.DiskImages.SizeUnit
+ B9.DiskImages: instance GHC.Classes.Ord B9.DiskImages.SharedImage
+ B9.DiskImages: instance GHC.Classes.Ord B9.DiskImages.SharedImageBuildId
+ B9.DiskImages: instance GHC.Classes.Ord B9.DiskImages.SharedImageDate
+ B9.DiskImages: instance GHC.Classes.Ord B9.DiskImages.SharedImageName
+ B9.DiskImages: instance GHC.Classes.Ord B9.DiskImages.SizeUnit
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.FileSystem
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.Image
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.ImageDestination
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.ImageResize
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.ImageSize
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.ImageSource
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.ImageTarget
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.ImageType
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.MountPoint
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.Partition
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.SharedImage
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.SharedImageBuildId
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.SharedImageDate
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.SharedImageName
+ B9.DiskImages: instance GHC.Read.Read B9.DiskImages.SizeUnit
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.FileSystem
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.Image
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.ImageDestination
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.ImageResize
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.ImageSize
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.ImageSource
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.ImageTarget
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.ImageType
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.MountPoint
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.Partition
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.SharedImage
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.SharedImageBuildId
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.SharedImageDate
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.SharedImageName
+ B9.DiskImages: instance GHC.Show.Show B9.DiskImages.SizeUnit
+ B9.DiskImages: prettyPrintSharedImages :: [SharedImage] -> String
+ B9.DiskImages: siBuildId :: SharedImage -> SharedImageBuildId
+ B9.DiskImages: siDate :: SharedImage -> SharedImageDate
+ B9.ExecEnv: [cpuArch] :: Resources -> CPUArch
+ B9.ExecEnv: [cpuCount] :: Resources -> Int
+ B9.ExecEnv: [envImageMounts] :: ExecEnv -> [Mounted Image]
+ B9.ExecEnv: [envName] :: ExecEnv -> String
+ B9.ExecEnv: [envResources] :: ExecEnv -> Resources
+ B9.ExecEnv: [envSharedDirectories] :: ExecEnv -> [SharedDirectory]
+ B9.ExecEnv: [maxMemory] :: Resources -> RamSize
+ B9.ExecEnv: instance Data.Data.Data B9.ExecEnv.CPUArch
+ B9.ExecEnv: instance Data.Data.Data B9.ExecEnv.RamSize
+ B9.ExecEnv: instance Data.Data.Data B9.ExecEnv.Resources
+ B9.ExecEnv: instance Data.Data.Data B9.ExecEnv.SharedDirectory
+ B9.ExecEnv: instance GHC.Base.Monoid B9.ExecEnv.CPUArch
+ B9.ExecEnv: instance GHC.Base.Monoid B9.ExecEnv.RamSize
+ B9.ExecEnv: instance GHC.Base.Monoid B9.ExecEnv.Resources
+ B9.ExecEnv: instance GHC.Classes.Eq B9.ExecEnv.CPUArch
+ B9.ExecEnv: instance GHC.Classes.Eq B9.ExecEnv.RamSize
+ B9.ExecEnv: instance GHC.Classes.Eq B9.ExecEnv.SharedDirectory
+ B9.ExecEnv: instance GHC.Classes.Ord B9.ExecEnv.RamSize
+ B9.ExecEnv: instance GHC.Read.Read B9.ExecEnv.CPUArch
+ B9.ExecEnv: instance GHC.Read.Read B9.ExecEnv.RamSize
+ B9.ExecEnv: instance GHC.Read.Read B9.ExecEnv.Resources
+ B9.ExecEnv: instance GHC.Read.Read B9.ExecEnv.SharedDirectory
+ B9.ExecEnv: instance GHC.Show.Show B9.ExecEnv.CPUArch
+ B9.ExecEnv: instance GHC.Show.Show B9.ExecEnv.RamSize
+ B9.ExecEnv: instance GHC.Show.Show B9.ExecEnv.Resources
+ B9.ExecEnv: instance GHC.Show.Show B9.ExecEnv.SharedDirectory
+ B9.LibVirtLXC: instance GHC.Read.Read B9.LibVirtLXC.LXCGuestCapability
+ B9.LibVirtLXC: instance GHC.Read.Read B9.LibVirtLXC.LibVirtLXCConfig
+ B9.LibVirtLXC: instance GHC.Show.Show B9.LibVirtLXC.LXCGuestCapability
+ B9.LibVirtLXC: instance GHC.Show.Show B9.LibVirtLXC.LibVirtLXCConfig
+ B9.MBR: [chsH] :: CHS -> !Word8
+ B9.MBR: [chs_CLower8] :: CHS -> !Word8
+ B9.MBR: [chs_CUpper2_S] :: CHS -> !Word8
+ B9.MBR: [mbrPart1] :: MBR -> !PrimaryPartition
+ B9.MBR: [mbrPart2] :: MBR -> !PrimaryPartition
+ B9.MBR: [mbrPart3] :: MBR -> !PrimaryPartition
+ B9.MBR: [mbrPart4] :: MBR -> !PrimaryPartition
+ B9.MBR: [primPartChsEnd] :: PrimaryPartition -> !CHS
+ B9.MBR: [primPartChsStart] :: PrimaryPartition -> !CHS
+ B9.MBR: [primPartLbaStart] :: PrimaryPartition -> !Word32
+ B9.MBR: [primPartPartType] :: PrimaryPartition -> !Word8
+ B9.MBR: [primPartSectors] :: PrimaryPartition -> !Word32
+ B9.MBR: [primPartStatus] :: PrimaryPartition -> !Word8
+ B9.MBR: instance GHC.Show.Show B9.MBR.CHS
+ B9.MBR: instance GHC.Show.Show B9.MBR.MBR
+ B9.MBR: instance GHC.Show.Show B9.MBR.PrimaryPartition
+ B9.Repository: cleanRemoteRepo :: MonadIO m => RepoCache -> RemoteRepo -> m ()
+ B9.Repository: instance Data.Data.Data B9.Repository.RemoteRepo
+ B9.Repository: instance Data.Data.Data B9.Repository.RepoCache
+ B9.Repository: instance Data.Data.Data B9.Repository.SshPrivKey
+ B9.Repository: instance Data.Data.Data B9.Repository.SshRemoteHost
+ B9.Repository: instance Data.Data.Data B9.Repository.SshRemoteUser
+ B9.Repository: instance GHC.Read.Read B9.Repository.RemoteRepo
+ B9.Repository: instance GHC.Read.Read B9.Repository.RepoCache
+ B9.Repository: instance GHC.Read.Read B9.Repository.SshPrivKey
+ B9.Repository: instance GHC.Read.Read B9.Repository.SshRemoteHost
+ B9.Repository: instance GHC.Read.Read B9.Repository.SshRemoteUser
+ B9.Repository: instance GHC.Show.Show B9.Repository.RemoteRepo
+ B9.Repository: instance GHC.Show.Show B9.Repository.RepoCache
+ B9.Repository: instance GHC.Show.Show B9.Repository.SshPrivKey
+ B9.Repository: instance GHC.Show.Show B9.Repository.SshRemoteHost
+ B9.Repository: instance GHC.Show.Show B9.Repository.SshRemoteUser
+ B9.RepositoryIO: instance GHC.Classes.Eq B9.RepositoryIO.Repository
+ B9.RepositoryIO: instance GHC.Classes.Ord B9.RepositoryIO.Repository
+ B9.RepositoryIO: instance GHC.Read.Read B9.RepositoryIO.Repository
+ B9.RepositoryIO: instance GHC.Show.Show B9.RepositoryIO.Repository
+ B9.RepositoryIO: toRemoteRepository :: RemoteRepo -> Repository
+ B9.ShellScript: instance Data.Data.Data B9.ShellScript.CmdVerbosity
+ B9.ShellScript: instance Data.Data.Data B9.ShellScript.Script
+ B9.ShellScript: instance GHC.Base.Monoid B9.ShellScript.Script
+ B9.ShellScript: instance GHC.Classes.Eq B9.ShellScript.CmdVerbosity
+ B9.ShellScript: instance GHC.Classes.Eq B9.ShellScript.Script
+ B9.ShellScript: instance GHC.Read.Read B9.ShellScript.Cmd
+ B9.ShellScript: instance GHC.Read.Read B9.ShellScript.CmdVerbosity
+ B9.ShellScript: instance GHC.Read.Read B9.ShellScript.Cwd
+ B9.ShellScript: instance GHC.Read.Read B9.ShellScript.Script
+ B9.ShellScript: instance GHC.Read.Read B9.ShellScript.User
+ B9.ShellScript: instance GHC.Show.Show B9.ShellScript.Cmd
+ B9.ShellScript: instance GHC.Show.Show B9.ShellScript.CmdVerbosity
+ B9.ShellScript: instance GHC.Show.Show B9.ShellScript.Cwd
+ B9.ShellScript: instance GHC.Show.Show B9.ShellScript.Script
+ B9.ShellScript: instance GHC.Show.Show B9.ShellScript.User
+ B9.Vm: instance Data.Data.Data B9.Vm.VmScript
+ B9.Vm: instance GHC.Classes.Eq B9.Vm.VmScript
+ B9.Vm: instance GHC.Read.Read B9.Vm.VmScript
+ B9.Vm: instance GHC.Show.Show B9.Vm.VmScript
- B9.B9Config: B9Config :: Maybe LogLevel -> Maybe FilePath -> Maybe FilePath -> Bool -> ExecEnvType -> Maybe FilePath -> BuildVariables -> Bool -> Maybe SystemPath -> Maybe String -> B9Config
+ B9.B9Config: B9Config :: Maybe LogLevel -> Maybe FilePath -> Maybe FilePath -> Bool -> ExecEnvType -> Maybe FilePath -> BuildVariables -> Bool -> Maybe SystemPath -> Maybe String -> Bool -> B9Config
- B9.Content.AST: class ConcatableSyntax a => ASTish a
+ B9.Content.AST: class (ConcatableSyntax a) => ASTish a
- B9.Content.AST: class Semigroup a => ConcatableSyntax a
+ B9.Content.AST: class (Semigroup a) => ConcatableSyntax a
- B9.DiskImages: siName :: SharedImage -> String
+ B9.DiskImages: siName :: SharedImage -> SharedImageName

Files

b9.cabal view
@@ -1,5 +1,5 @@ name:                b9-version:             0.5.8+version:             0.5.9  synopsis:            A tool and library for building virtual machine images. @@ -112,6 +112,7 @@                    , yaml                    , bifunctors                    , free+                   , boxes   default-extensions: TupleSections                     , GeneralizedNewtypeDeriving                     , DeriveDataTypeable@@ -129,6 +130,7 @@   -- other-extensions:   build-depends:     b9                    , base >= 4.7 && < 5+                   , directory                    , bytestring                    , optparse-applicative   hs-source-dirs:    src/cli
src/cli/Main.hs view
@@ -1,10 +1,17 @@ module Main where -import Options.Applicative hiding (action)-import Options.Applicative.Help.Pretty+import Options.Applicative             hiding (action)+import Options.Applicative.Help.Pretty hiding ((</>)) -import Paths_b9+import Control.Exception+import Data.Function                   (on)+import Data.List                       (groupBy)+import Data.Maybe import Data.Version+import Paths_b9+import Prelude                         hiding (catch)+import System.Directory+import System.IO.Error                 hiding (catch)  import B9 @@ -90,18 +97,121 @@     conf' = conf { keepTempDirs = False }     maybePullImage = maybe (return True) pullLatestImage mName +runRun :: SharedImageName -> [String] -> BuildAction+runRun (SharedImageName name) cmdAndArgs _cfgFile cp conf = impl+  where+    conf' =+        conf+        { keepTempDirs = False+        , interactive = True+        }+    impl = buildArtifacts runCmdAndArgs cp conf'+      where+        runCmdAndArgs =+            Artifact+                (IID ("run-" ++ name))+                (VmImages+                     [ ImageTarget+                           Transient+                           (From name KeepSize)+                           (MountPoint "/")]+                     (VmScript+                          X86_64+                          [SharedDirectory "." (MountPoint "/mnt/CWD")]+                          (Run (head cmdAndArgs') (tail cmdAndArgs'))))+        cmdAndArgs' =+            if null cmdAndArgs+                then ["/usr/bin/zsh"]+                else cmdAndArgs+++runGcLocalRepoCache :: BuildAction+runGcLocalRepoCache _cfgFile cp conf = impl+  where+    conf' =+        conf+        { keepTempDirs = False+        }+    impl =+        run cp conf' $+        do toDelete <-+               (obsoleteSharedmages . map snd) <$>+               lookupSharedImages (== Cache) (const True)+           imgDir <- getSharedImagesCacheDir+           let filesToDelete = (imgDir </>) <$> (infoFiles ++ imgFiles)+               infoFiles = sharedImageFileName <$> toDelete+               imgFiles = (imageFileName . sharedImageImage) <$> toDelete+           if null filesToDelete+               then liftIO $+                    do putStrLn "\n\nNO IMAGES TO DELETE\n"+                       return True+               else liftIO $+                    do putStrLn "DELETING FILES:"+                       putStrLn (unlines filesToDelete)+                       mapM_ removeIfExists filesToDelete+                       return True+    obsoleteSharedmages :: [SharedImage] -> [SharedImage]+    obsoleteSharedmages =+        concatMap (tail . reverse) .+        filter ((> 1) . length) . groupBy ((==) `on` siName)+    removeIfExists :: FilePath -> IO ()+    removeIfExists fileName = removeFile fileName `catch` handleExists+      where+        handleExists e+          | isDoesNotExistError e = return ()+          | otherwise = throwIO e++runGcRemoteRepoCache :: BuildAction+runGcRemoteRepoCache _cfgFile cp conf = impl+  where+    conf' =+        conf+        { keepTempDirs = False+        }+    impl =+        run cp conf' $+        do repos <- getSelectedRepos+           cache <- getRepoCache+           mapM_ (cleanRemoteRepo cache) repos+           return True+ runListSharedImages :: BuildAction runListSharedImages _cfgFile cp conf = impl   where-    conf' = conf { keepTempDirs = False }-    impl = do-      imgs <- run cp conf' getSharedImages-      if null imgs-        then putStrLn "\n\nNO SHAREABLE IMAGES\n"-        else putStrLn "SHAREABLE IMAGES:"-      mapM_ (putStrLn . ppShow) imgs-      return True+    conf' =+        conf+        { keepTempDirs = False+        }+    impl =+        run cp conf' $+        do remoteRepo <- getSelectedRemoteRepo+           let repoPred =+                   maybe (== Cache) ((==) . toRemoteRepository) remoteRepo+           allRepos <- getRemoteRepos+           if isNothing remoteRepo+               then liftIO $+                    do putStrLn "Showing local shared images only."+                       putStrLn $+                           "\nTo view the contents of a remote repo add \n\+                        \the '-r' switch with one of the remote \n\+                        \repository ids."+               else liftIO $+                    putStrLn+                        ("Showing shared images on: " +++                         remoteRepoRepoId (fromJust remoteRepo))+           when (not (null allRepos)) $+               liftIO $+               do putStrLn "\nAvailable remote repositories:"+                  mapM_ (putStrLn . (" * " ++) . remoteRepoRepoId) allRepos+           imgs <- lookupSharedImages repoPred (const True)+           if null imgs+               then liftIO $ putStrLn "\n\nNO SHARED IMAGES\n"+               else liftIO $+                    do putStrLn ""+                       putStrLn $ prettyPrintSharedImages $ map snd imgs+           return True + runAddRepo :: RemoteRepo -> BuildAction runAddRepo repo cfgFile cp _conf = do   repo' <- remoteRepoCheckSshPrivKey repo@@ -189,21 +299,42 @@                     , cliB9Config = b9cfg' }  cmds :: Parser BuildAction-cmds = subparser (   command "version"-                               (info (pure runShowVersion)-                                     (progDesc "Show program version and exit."))-                  <> command "build"-                               (info (runBuildArtifacts <$> buildFileParser)-                                     (progDesc "Merge all build file and\-                                               \ generate all artifacts."))-                  <> command "push"-                        (info (runPush <$> sharedImageNameParser)-                              (progDesc "Push the lastest shared image\+cmds =+    subparser+        (command+             "version"+             (info+                  (pure runShowVersion)+                  (progDesc "Show program version and exit.")) <>+         command+             "build"+             (info+                  (runBuildArtifacts <$> buildFileParser)+                  (progDesc+                       "Merge all build file and\+                                               \ generate all artifacts.")) <>+         command+             "run"+             (info+                  (runRun <$> sharedImageNameParser <*> many (strArgument idm))+                  (progDesc+                       "Run a command on the lastest version of the\+                                        \ specified shared image. All modifications\+                                        \ are lost on exit.")) <>+         command+             "push"+             (info+                  (runPush <$> sharedImageNameParser)+                  (progDesc+                       "Push the lastest shared image\                                         \ from cache to the selected \-                                        \ remote repository."))-                  <> command "pull"-                             (info (runPull <$> optional sharedImageNameParser)-                                   (progDesc "Either pull shared image meta\+                                        \ remote repository.")) <>+         command+             "pull"+             (info+                  (runPull <$> optional sharedImageNameParser)+                  (progDesc+                       "Either pull shared image meta\                                              \ data from all repositories,\                                              \ or only from just a selected one.\                                              \ If additionally the name of a\@@ -211,16 +342,35 @@                                              \ pull the newest version\                                              \ from either the selected repo,\                                              \ or from the repo with the most\-                                             \ recent version."))-                  <> command "list"-                             (info (pure runListSharedImages)-                                   (progDesc "List shared images."))-                  <> command "add-repo"-                             (info (runAddRepo <$> remoteRepoParser)-                                   (progDesc "Add a remote repo."))-                  <> command "reformat"-                             (info (runFormatBuildFiles <$> buildFileParser)-                                   (progDesc "Re-Format all build files.")))+                                             \ recent version.")) <>+         command+             "clean-local"+             (info+                  (pure runGcLocalRepoCache)+                  (progDesc+                       "Remove old versions of shared images\+                                             \ from the local cache.")) <>+         command+             "clean-remote"+             (info+                  (pure runGcRemoteRepoCache)+                  (progDesc+                       "Remove cached meta-data of a remote repository. \+                       \If no '-r' is given, clean the meta data of ALL \+                       \remote repositories.")) <>+         command+             "list"+             (info (pure runListSharedImages) (progDesc "List shared images.")) <>+         command+             "add-repo"+             (info+                  (runAddRepo <$> remoteRepoParser)+                  (progDesc "Add a remote repo.")) <>+         command+             "reformat"+             (info+                  (runFormatBuildFiles <$> buildFileParser)+                  (progDesc "Re-Format all build files.")))  buildFileParser :: Parser [FilePath] buildFileParser = helper <*>
src/lib/B9/B9Config.hs view
@@ -45,12 +45,13 @@                          , uniqueBuildDirs :: Bool                          , repositoryCache :: Maybe SystemPath                          , repository :: Maybe String+                         , interactive :: Bool                          } deriving (Show)   instance Monoid B9Config where   mempty = B9Config Nothing Nothing Nothing False LibVirtLXC Nothing [] True-                    Nothing Nothing+                    Nothing Nothing False   mappend c c' =     B9Config { verbosity = getLast $ on mappend (Last . verbosity) c c'              , logFile = getLast $ on mappend (Last . logFile) c c'@@ -62,6 +63,7 @@              , uniqueBuildDirs = getAll ((mappend `on` (All . uniqueBuildDirs)) c c')              , repositoryCache = getLast $ on mappend (Last . repositoryCache) c c'              , repository = getLast ((mappend `on` (Last . repository)) c c')+             , interactive = getAny ((mappend `on` (Any . interactive)) c c')              }  defaultB9Config :: B9Config@@ -75,6 +77,7 @@                            , uniqueBuildDirs = True                            , repository = Nothing                            , repositoryCache = Just defaultRepositoryCache+                           , interactive = False                            }  defaultRepositoryCache :: SystemPath@@ -170,6 +173,7 @@                  <*> getr uniqueBuildDirsK                  <*> getr repositoryCacheK                  <*> getr repositoryK+                 <*> pure False   in case getB9Config of        Left err ->          Left (printf "Failed to parse B9 configuration file: '%s'" (show err))
src/lib/B9/B9Monad.hs view
@@ -68,10 +68,11 @@     withBuildDir buildId = bracket (createBuildDir buildId) removeBuildDir      run' buildId now buildDir logFileHandle = do-      maybe (print "Keeping PWD as CWD") setCurrentDirectory (buildDirRoot cfg)+      maybe (return ()) setCurrentDirectory (buildDirRoot cfg)       -- Check repositories       repoCache <- initRepoCache (fromMaybe defaultRepositoryCache (repositoryCache cfg))       let remoteRepos = getConfiguredRemoteRepos cfgParser+          buildDate = formatTime undefined "%F-%T" now       remoteRepos' <- mapM (initRemoteRepo repoCache) remoteRepos       let ctx = BuildState                   buildId@@ -85,8 +86,7 @@                   repoCache                   []                   now-                  True-          buildDate = formatTime undefined "%F-%T" now+                  (interactive cfg)           selectedRemoteRepo = do             sel <- repository cfg             lookupRemoteRepo remoteRepos sel@@ -171,28 +171,34 @@ cmd str = do   inheritStdIn <- gets bsInheritStdIn   if inheritStdIn-     then interactive str-     else nonInteractive str+     then interactiveCmd str+     else nonInteractiveCmd str -interactive :: String -> B9 ()-interactive str = void (cmdWithStdIn str :: B9 Inherited)+interactiveCmd :: String -> B9 ()+interactiveCmd str = void (cmdWithStdIn True str :: B9 Inherited) -nonInteractive :: String -> B9 ()-nonInteractive str = void (cmdWithStdIn str :: B9 ClosedStream)+nonInteractiveCmd :: String -> B9 ()+-- TODO if we use 'ClosedStream' we get an error from 'virsh console'+-- complaining about a missing controlling tty. Original source line:+-- nonInteractiveCmd str = void (cmdWithStdIn False str :: B9 ClosedStream)+nonInteractiveCmd str = void (cmdWithStdIn False str :: B9 Inherited) -cmdWithStdIn :: (InputSource stdin) => String -> B9 stdin-cmdWithStdIn cmdStr = do+cmdWithStdIn :: (InputSource stdin) => Bool -> String -> B9 stdin+cmdWithStdIn toStdOut cmdStr = do   traceL $ "COMMAND: " ++ cmdStr-  (cpIn, cpOut, cpErr, cph) <- streamingProcess (shell cmdStr)   cmdLogger <- getCmdLogger+  let outPipe = if toStdOut then CL.mapM_ B.putStr+                else cmdLogger LogTrace+  (cpIn, cpOut, cpErr, cph) <- streamingProcess (shell cmdStr)   e <- liftIO $ runConcurrently $-         Concurrently (cpOut $$ cmdLogger LogTrace) *>+         Concurrently (cpOut $$ outPipe) *>          Concurrently (cpErr $$ cmdLogger LogInfo) *>          Concurrently (waitForStreamingProcess cph)   checkExitCode e   return cpIn    where+     getCmdLogger = do       lv <- gets $ verbosity . bsCfg       lfh <- gets bsLogFileHandle
src/lib/B9/DiskImageBuilder.hs view
@@ -16,6 +16,8 @@                            ,pushSharedImageLatestVersion                            ,lookupSharedImages                            ,getSharedImages+                           ,getSharedImagesCacheDir+                           ,getSelectedRepos                            ,pullRemoteRepos                            ,pullLatestImage                            ,) where@@ -84,7 +86,7 @@     (CopyOnWrite backingImg) ->       liftIO (ensureAbsoluteImageDirExists backingImg)     (From name _resize) -> do-      latestImage <- getLatestImageByName name+      latestImage <- getLatestImageByName (SharedImageName name)       liftIO (ensureAbsoluteImageDirExists latestImage)  -- | Return all valid image types sorted by preference.@@ -102,7 +104,7 @@          `intersect`          allowedImageTypesForResize resize)     (From name resize) -> do-      sharedImg <- getLatestImageByName name+      sharedImg <- getLatestImageByName (SharedImageName name)       preferredDestImageTypes (SourceImage sharedImg NoPT resize)  preferredSourceImageTypes :: ImageDestination -> [ImageType]@@ -134,7 +136,7 @@   return $ changeImageDirectory dirAbs img  -- | Create an image from an image source. The destination image must have a--- compatible image type and filesyste. The directory of the image MUST be+-- compatible image type and filesystem. The directory of the image MUST be -- present and the image file itself MUST NOT alredy exist. materializeImageSource :: ImageSource -> Image -> B9 () materializeImageSource src dest =@@ -147,7 +149,7 @@     (CopyOnWrite backingImg) ->       createCOWImage backingImg dest     (From name resize) -> do-      sharedImg <- getLatestImageByName name+      sharedImg <- getLatestImageByName (SharedImageName name)       materializeImageSource (SourceImage sharedImg NoPT resize) dest  createImageFromImage :: Image -> Partition -> ImageResize -> Image -> B9 ()@@ -364,8 +366,8 @@ -- | Publish the latest version of a shared image identified by name to the -- selected repository from the cache. pushSharedImageLatestVersion :: SharedImageName -> B9 ()-pushSharedImageLatestVersion (SharedImageName imgName) = do-  sharedImage <- getLatestSharedImageByNameFromCache imgName+pushSharedImageLatestVersion name@(SharedImageName imgName) = do+  sharedImage <- getLatestSharedImageByNameFromCache name   dbgL (printf "PUSHING '%s'" (ppShow sharedImage))   pushToSelectedRepo sharedImage   infoL (printf "PUSHED '%s'" imgName)@@ -396,7 +398,7 @@ -- | Pull the latest version of an image, either from the selected remote -- repo or from the repo that has the latest version. pullLatestImage :: SharedImageName -> B9 Bool-pullLatestImage (SharedImageName name) = do+pullLatestImage name@(SharedImageName dbgName) = do   repos <- getSelectedRepos   let repoPredicate Cache = False       repoPredicate (Remote repoId) = repoId `elem` repoIds@@ -407,7 +409,7 @@   if null candidates     then do       errorL-        (printf "No shared image named '%s' on these remote repositories: '%s'" name+        (printf "No shared image named '%s' on these remote repositories: '%s'" dbgName            (ppShow repoIds))       return False     else do@@ -422,13 +424,13 @@           repo = fromJust (lookupRemoteRepo repos repoId)       pullFromRepo repo repoImgFile cachedImgFile       pullFromRepo repo repoInfoFile cachedInfoFile-      infoL (printf "PULLED '%s' FROM '%s'" name repoId)+      infoL (printf "PULLED '%s' FROM '%s'" dbgName repoId)       return True   -- | Return the 'Image' of the latest version of a shared image named 'name' -- from the local cache.-getLatestImageByName :: String -> B9 Image+getLatestImageByName :: SharedImageName -> B9 Image getLatestImageByName name = do   sharedImage <- getLatestSharedImageByNameFromCache name   cacheDir <- getSharedImagesCacheDir@@ -437,14 +439,14 @@   return image  -- | Return the latest version of a shared image named 'name' from the local cache.-getLatestSharedImageByNameFromCache :: String -> B9 SharedImage-getLatestSharedImageByNameFromCache name = do+getLatestSharedImageByNameFromCache :: SharedImageName -> B9 SharedImage+getLatestSharedImageByNameFromCache name@(SharedImageName dbgName) = do   imgs <- lookupSharedImages (== Cache) ((== name) . siName)   case reverse imgs of     (Cache, sharedImage):_rest ->       return sharedImage     _ ->-      error (printf "No image(s) named '%s' found." name)+      error (printf "No image(s) named '%s' found." dbgName)  -- | Return a list of all existing sharedImages from cached repositories. getSharedImages :: B9 [(Repository, [SharedImage])]
src/lib/B9/DiskImages.hs view
@@ -5,6 +5,7 @@ import Data.Semigroup import Data.Data import System.FilePath+import qualified Text.PrettyPrint.Boxes as Boxes  -- | Build target for disk images; the destination, format and size of the image -- to generate, as well as how to create or obtain the image before a@@ -92,6 +93,10 @@  type Mounted a = (a, MountPoint) +-- | Return the name of the file corresponding to an `Image`+imageFileName :: Image -> FilePath+imageFileName (Image f _ _) = f+ -- | Return the files generated for a local or a live image; shared and transient images -- are treated like they have no ouput files because the output files are manged -- by B9.@@ -143,9 +148,17 @@   deriving (Eq,Read,Show)  -- | Return the name of a shared image.-siName :: SharedImage -> String-siName (SharedImage (SharedImageName n) _ _ _ _) = n+siName :: SharedImage -> SharedImageName+siName (SharedImage n _ _ _ _) = n +-- | Return the date of a shared image.+siDate :: SharedImage -> SharedImageDate+siDate (SharedImage _ n _ _ _) = n++-- | Return the build id of a shared image.+siBuildId :: SharedImage -> SharedImageBuildId+siBuildId (SharedImage _ _ n _ _) = n+ -- | Shared images are orderd by name, build date and build id instance Ord SharedImage where   compare (SharedImage n d b _ _) (SharedImage n' d' b' _ _) =@@ -154,6 +167,22 @@ newtype SharedImageName = SharedImageName String deriving (Eq,Ord,Read,Show) newtype SharedImageDate = SharedImageDate String deriving (Eq,Ord,Read,Show) newtype SharedImageBuildId = SharedImageBuildId String deriving (Eq,Ord,Read,Show)++-- | Print the contents of the shared image in one line+prettyPrintSharedImages :: [SharedImage] -> String+prettyPrintSharedImages imgs = Boxes.render table+  where+    table = Boxes.hsep 1 Boxes.left cols+      where+        cols = [nameC, dateC, idC]+          where+            nameC = col "Name" ((\(SharedImageName n) -> n) . siName)+            dateC = col "Date" ((\(SharedImageDate n) -> n) . siDate)+            idC = col "ID" ((\(SharedImageBuildId n) -> n) . siBuildId)+            col title accessor =+              (Boxes.text title) Boxes.// (Boxes.vcat Boxes.left cells)+              where+                cells = Boxes.text <$> accessor <$> imgs  -- | Return the disk image of an sharedImage sharedImageImage :: SharedImage -> Image
src/lib/B9/Repository.hs view
@@ -11,6 +11,7 @@                      ,SshRemoteUser(..)                      ,initRepoCache                      ,initRemoteRepo+                     ,cleanRemoteRepo                      ,remoteRepoCheckSshPrivKey                      ,remoteRepoCacheDir                      ,localRepoDir@@ -77,10 +78,27 @@                -> RemoteRepo                -> m RemoteRepo initRemoteRepo cache repo = do+  -- TODO logging traceL $ printf "Initializing remote repo: %s" (remoteRepoRepoId repo)   repo' <- remoteRepoCheckSshPrivKey repo   let (RemoteRepo repoId _ _ _ _) = repo'   ensureDir (remoteRepoCacheDir cache repoId ++ "/")   return repo'++-- | Empty the repository; load the corresponding settings from the config+-- file, check that the priv key exists and create the correspondig cache+-- directory.+cleanRemoteRepo :: MonadIO m+                  => RepoCache+                  -> RemoteRepo+                  -> m ()+cleanRemoteRepo cache repo = do+  let repoId = remoteRepoRepoId repo+      repoDir = remoteRepoCacheDir cache repoId ++ "/"+  -- TODO logging infoL $ printf "Cleaning remote repo: %s" repoId+  ensureDir repoDir+  -- TODO logging traceL $ printf "Deleting directory: %s" repoDir+  liftIO $ removeDirectoryRecursive repoDir+  ensureDir repoDir  -- | Return the cache directory for a remote repository relative to the root -- cache dir.
src/lib/B9/RepositoryIO.hs view
@@ -5,6 +5,7 @@                        ,pullFromRepo                        ,pullGlob                        ,Repository(..)+                       ,toRemoteRepository                        ,FilePathGlob(..)) where  import B9.Repository@@ -20,6 +21,10 @@  data Repository = Cache | Remote String   deriving (Eq, Ord, Read, Show)++-- | Convert a `RemoteRepo` down to a mere `Repository`+toRemoteRepository :: RemoteRepo -> Repository+toRemoteRepository = Remote . remoteRepoRepoId  -- | Find files which are in 'subDir' and match 'glob' in the repository -- cache. NOTE: This operates on the repository cache, but does not enforce a