propellor-2.10.0: property-based host configuration management in haskell

Safe HaskellNone





data Chroot where Source

Specification of a chroot. Normally you'll use debootstrapped or bootstrapped to construct a Chroot value.


Chroot :: ChrootBootstrapper b => FilePath -> System -> b -> Host -> Chroot 

class ChrootBootstrapper b where Source

Class of things that can do initial bootstrapping of an operating System in a chroot.


buildchroot :: b -> System -> FilePath -> Maybe (Property HasInfo) Source

Do initial bootstrapping of an operating system in a chroot. If the operating System is not supported, return Nothing.

data Debootstrapped Source

Use to bootstrap a chroot with debootstrap.

debootstrapped :: System -> DebootstrapConfig -> FilePath -> Chroot Source

Defines a Chroot at the given location, built with debootstrap.

Properties can be added to configure the Chroot.

debootstrapped (System (Debian Unstable) "amd64") Debootstrap.BuildD "/srv/chroot/ghc-dev"
	& Apt.installed ["ghc", "haskell-platform"]
	& ...

bootstrapped :: ChrootBootstrapper b => System -> b -> FilePath -> Chroot Source

Defines a Chroot at the given location, bootstrapped with the specified ChrootBootstrapper.

provisioned :: Chroot -> RevertableProperty Source

Ensures that the chroot exists and is provisioned according to its properties.

Reverting this property removes the chroot. Anything mounted inside it is first unmounted. Note that it does not ensure that any processes that might be running inside the chroot are stopped.

Internal use

propellChroot :: Chroot -> ([String] -> IO (CreateProcess, IO ())) -> Bool -> Property NoInfo Source

Propellor is run inside the chroot to provision it.

chain :: [Host] -> CmdLine -> IO () Source