Add unit variable type and 'reloaded()' function.
[whenjobs.git] / lib / whenutils.mli
index 73d5084..13bc68c 100644 (file)
@@ -125,6 +125,7 @@ val filter_map : ('a -> 'b option) -> 'a list -> 'b list
 (** Filter + map. *)
 
 type whenexpr =
+  | Expr_unit                           (** Unit constant. *)
   | Expr_bool of bool                   (** A boolean constant. *)
   | Expr_str of string                  (** A string constant. *)
   | Expr_int of Big_int.big_int         (** An integer constant. *)
@@ -147,6 +148,7 @@ type whenexpr =
   | Expr_increases of string            (** increases var *)
   | Expr_decreases of string            (** decreases var *)
   | Expr_prev of string                 (** prev var *)
+  | Expr_reloaded                       (** reloaded () *)
 (** Internal type used to represent 'when' expressions. *)
 
 type periodexpr =
@@ -163,6 +165,7 @@ type shell_script = {
 (** A shell script. *)
 
 type variable =
+  | T_unit
   | T_bool of bool
   | T_string of string
   | T_int of Big_int.big_int
@@ -214,10 +217,12 @@ val dependencies_of_whenexpr : whenexpr -> string list
 val dependencies_of_job : job -> string list
 (** Which variables does this job depend on? *)
 
-val job_evaluate : job -> variables -> bool * job
-(** Evaluate [job]'s condition in the context of the [variables], and
-    return [true] iff it should be run now.  Note that this returns a
-    possibly-updated [job] structure.
+val job_evaluate : job -> variables -> bool -> bool * job
+(** [job_evaluate job variables onload] evaluates [job]'s condition in
+    the context of the [variables], and return [true] iff it should be
+    run now.
+
+    Note that this returns a possibly-updated [job] structure.
 
     This is a no-op for 'every' jobs. *)