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

Safe HaskellNone
LanguageHaskell2010

B9.Repository

Description

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.

Synopsis

Documentation

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.

cleanRemoteRepo :: MonadIO m => RepoCache -> RemoteRepo -> m () Source #

Empty 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 #

Arguments

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

Arguments

:: RepoCache

The repository cache directory

-> FilePath

The existing, absolute path to the directory

Return the local repository directory.

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

Select the first RemoteRepo with a given repoId.