b9-0.5.49: 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 #

doc :: String -> B9DSL () #

doc' :: Content -> B9DSL () #

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

($=) :: String -> String -> B9DSL () #

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

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

importImage :: FilePath -> ImageType -> FileSystem -> Partition -> ImageResize -> B9DSL (Imported VmImage) #

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

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

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

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

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

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

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

lxc :: String -> B9DSL ExecEnv #

lxc32 :: String -> B9DSL ExecEnv #

boot :: String -> ExecEnvType -> CPUArch -> B9DSL ExecEnv #

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

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

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

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

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

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

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

printDSL :: B9DSL a -> IO () #

Print the DSL to IO

printBuildStep :: BuildStep a -> IO a #