docs: Document how to use onrun + memory_set.
[goaljobs.git] / goaljobs.mli
index c1dff52..43432f1 100644 (file)
@@ -70,7 +70,7 @@ val target_exists : bool list -> unit
   (** [target_exists [t1; t2; ...]] is the same as writing
       [target (t1 || t2 || ...)] *)
 
-val require : (unit -> unit) -> unit
+val require : string -> (unit -> unit) -> unit
   (** [require] {i goal} defines the requirements of this goal, that
       is, other goals that have to be met before the rest of the
       goal is able to run.
@@ -296,6 +296,28 @@ val publish : string -> (string list -> unit) -> unit
       the place to perform string to int conversion, checks, and
       so on (remember that OCaml is strongly typed). *)
 
+(** {2 Logging script output} *)
+
+val log_program_output : unit -> string
+  (** [log_program_output] should be called at most once, usually at
+      the top-level of the script.  It creates a temporary file
+      and redirects stdout and stderr into this file (they are still
+      sent to the ordinary output, so it acts like [tee]).  The
+      filename of the temporary file is returned. *)
+
+(** {2 Sending email} *)
+
+val mailto : ?from:string -> subject:string -> ?attach:string list-> string -> unit
+  (** Send email.
+
+      Optional [?from] is the sender email address.
+
+      Required [~subject] is the subject line.
+
+      Optional [?attach] is a list of attachments (filenames).
+
+      The bare argument is the destination email address. *)
+
 (**/**)
 
 (* Goal versions of some common functions.  You are using these
@@ -321,3 +343,7 @@ val init : unit -> unit
 (* Export this so the macros can catch these exceptions. *)
 type goal_result_t = Goal_OK | Goal_failed of string
 exception Goal_result of goal_result_t
+
+(* Called to print debug message when we enter or leave a goal. *)
+val _enter_goal : string -> unit
+val _leave_goal : string -> unit