Library
Module
Module type
Parameter
Class
Class type
The Git Runtime for YOCaml.
Builds a runtime based on a source runtime generating artefacts in a Git database, which can then be served by a Unikernel (ie: unipi).
val run :
(module Required.SOURCE) ->
(module Mirage_clock.PCLOCK) ->
context:[ `SSH ] ->
?author:string ->
?email:string ->
?message:string ->
remote:string ->
?level:Yocaml_runtime.Log.level ->
?custom_error_handler:
(Stdlib.Format.formatter -> Yocaml.Data.Validation.custom_error -> unit) ->
(unit -> unit Yocaml.Eff.t) ->
(unit, [> `Msg of string ]) Stdlib.result Lwt.t
Executes a YOCaml program using a given Runtime for processing with Source
and using a Git Store
as compilation target. What the YOCaml progam generates is compared with what you can view from the given remote repository and updated with a new Git commit. Then, we push
these changes to the remote repository.
ctx
contains multiple informations needed to initiate a communication with the given remote repository. See Git_unix.ctx
for more details.
Since Git is only the target, we need to provision the source, with a function capable of transforming the type of the source runtime to lwt
by implementing a lift function
.
module Required : sig ... end
Interfaces required.
Allows the creation of a source where the type of the source runtime is the identity (type ‘a t = ’a
), as for the Unix
runtime (for example).
module From_identity
(Source : Yocaml.Required.RUNTIME with type 'a t = 'a) :
Required.SOURCE with type 'a t = 'a Source.t
Describes a natural transformation allowing a Yocaml program of type ‘a t
to be transformed into a program of type ’a Lwt.t
(so that it can be used via Yocaml_git
.