jenga

Industrial strength, full-featured build system
IN THIS PACKAGE
Module Jenga_lib . Action
type t

Action.t - things which a build-rule can do:

  • shell run a process (a Job.t)
  • save save a file

Although some actions can be run directly by the jenga process (i.e. file-save), it is always possible to obtain the equivalent Job.t, which is important when we want to externalize the action, for example, when extracting a Makefile.

val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val proxy : default_sandbox:Db.Sandbox_kind.t -> t -> Db.Action_proxy.t
val dir : t -> Path.t
module Output : sig ... end
exception Shutdown
val run : t -> message:( unit -> unit ) -> output:'a Output.t -> deps:Db.Proxy_map.t -> targets:Path.Rel.t list -> putenv:(string * string option) list -> progress:Progress.t -> need:string -> default_sandbox:Db.Sandbox_kind.t -> ( 'a, [ `command_failed of Job_summary.t | `other_error of exn | `sandbox_error of Sandbox.error ] ) Core.Result.t Async.Deferred.t
val run_now : t -> output:'a Output.t -> 'a Async.Deferred.t
val to_sh_ignoring_dir : t -> string

returns a bash script that expects to be run from dir t

val process : dir:Path.t -> prog:string -> args:string list -> sandbox:Sandbox.kind option -> ignore_stderr:bool -> t
val save : ?chmod_x:unit -> string -> target:Path.t -> t