-type job_private
-(** Private state associated with a job, used for evaluation. *)
-
-val no_job_private : job_private
-(* XXX any use of no_job_private is wrong XXX *)
-
-type job_cond =
- | When_job of whenexpr (** when ... : << >> *)
- | Every_job of periodexpr (** every ... : << >> *)
-
-type job = {
- job_loc : Camlp4.PreCast.Loc.t;
- job_name : string;
- job_cond : job_cond;
- job_script : shell_script;
- job_private : job_private;
-}
-(** A job. *)
-
-val expr_of_ast : Camlp4.PreCast.Ast.Loc.t -> Camlp4.PreCast.Ast.expr -> whenexpr
-(** Convert OCaml AST to an expression. Since OCaml ASTs are much
- more general than the expressions we can use, this can raise
- [Invalid_argument] in many different situations. *)
-
-val string_of_whenexpr : whenexpr -> string
-(** Pretty-print an expression to a string. *)
-
-val string_of_periodexpr : periodexpr -> string
-(** Pretty-print a period expression to a string. *)
-
-val dependencies_of_whenexpr : whenexpr -> string list
-(** Return list of variables that an expression depends on. This is
- used to work out when an expression needs to be reevaluated. *)
-
-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.
-
- This is a no-op for 'every' jobs. *)