b9-0.5.15: A tool and library for building virtual machine images.

Safe HaskellNone
LanguageHaskell2010

B9.DSL

Description

Experimental new, hopefully typesafe. domain specific language for description of VM-builds.

Synopsis

Documentation

type B9DSL a = Free BuildStep a Source

(#) :: B9DSL a -> String -> B9DSL a Source

imageSource :: ImageSource -> B9DSL (Imported VmImage) Source

createImage :: String -> FileSystem -> ImageType -> ImageSize -> B9DSL (Imported VmImage) Source

from :: String -> B9DSL (Imported VmImage) Source

fromResized :: ImageResize -> String -> B9DSL (Imported VmImage) Source

imageDestination :: Imported VmImage -> ImageDestination -> B9DSL () Source

share :: Imported VmImage -> String -> B9DSL () Source

exportLiveInstallerImage :: Imported VmImage -> String -> FilePath -> ImageResize -> B9DSL () Source

exportImage :: Imported VmImage -> FilePath -> ImageType -> FileSystem -> ImageResize -> B9DSL () Source

mount :: DSLCanMount src => ExecEnv -> src -> FilePath -> B9DSL (Imported (MountArtifact src)) Source

lxc :: String -> B9DSL ExecEnv Source

lxc32 :: String -> B9DSL ExecEnv Source

exec :: Script -> ExecEnv -> B9DSL () Source

sh :: String -> ExecEnv -> B9DSL () Source

rootImage :: String -> String -> ExecEnv -> B9DSL () Source

dataImage :: String -> ExecEnv -> B9DSL () Source

mountAndShareSharedImage :: String -> String -> String -> ExecEnv -> B9DSL (Imported VmImage) Source

mountAndShareNewImage :: String -> Int -> String -> FilePath -> ExecEnv -> B9DSL (Imported VmImage) Source

runDSL :: Monad m => (forall a. BuildStep a -> m a) -> B9DSL b -> m b Source

printDSL :: B9DSL a -> IO () Source

Print the DSL to IO

printBuildStep :: BuildStep a -> IO a Source