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

Safe HaskellNone



B9 has a concept of SharedImaged. Shared images can be pulled and pushed to/from remote locations via rsync+ssh. B9 also maintains a local cache; the whole thing is supposed to be build-server-safe, that means no two builds shall interfere with each other. This is accomplished by refraining from automatic cache updates from/to remote repositories.



initRepoCache :: MonadIO m => SystemPath -> m RepoCache Source

Initialize the local repository cache directory.

initRemoteRepo :: MonadIO m => RepoCache -> RemoteRepo -> m RemoteRepo Source

Initialize the repository; load the corresponding settings from the config file, check that the priv key exists and create the correspondig cache directory.

remoteRepoCheckSshPrivKey :: MonadIO m => RemoteRepo -> m RemoteRepo Source

Check for existance of priv-key and make it an absolute path.

remoteRepoCacheDir Source


:: RepoCache

The repository cache directory

-> String

Id of the repository

-> FilePath

The existing, absolute path to the cache directory

Return the cache directory for a remote repository relative to the root cache dir.

localRepoDir Source


:: RepoCache

The repository cache directory

-> FilePath

The existing, absolute path to the directory

Return the local repository directory.

writeRemoteRepoConfig :: RemoteRepo -> ConfigParser -> Either CPError ConfigParser Source

Persist a repo to a configuration file.

lookupRemoteRepo :: [RemoteRepo] -> String -> Maybe RemoteRepo Source

Load a repository from a configuration file that has been written by writeRepositoryToB9Config.