}
(** A shell script. *)
+type preinfo = {
+ pi_job_name : string; (** Job name. *)
+ pi_serial : Big_int.big_int; (** Job serial number. *)
+}
+(** Information available to pre function before the job runs. *)
+
+type result = {
+ res_job_name : string; (** Job name. *)
+ res_serial : Big_int.big_int; (** Job serial number. *)
+ res_code : int; (** Return code from the script. *)
+ res_tmpdir : string; (** Temporary directory. *)
+ res_output : string; (** Filename of output from job. *)
+ res_start_time : float; (** When the job started. *)
+}
+(** Result of the run of a job. *)
+
+type pre = preinfo -> bool
+type post = result -> unit
+(** Pre and post functions. *)
+
type variable =
| T_unit
| T_bool of bool
type job = {
job_loc : Camlp4.PreCast.Loc.t;
job_name : string;
+ job_pre : pre option;
+ job_post : post option;
job_cond : job_cond;
job_script : shell_script;
}
midnight UTC on the 1st day of the year when
[(y - 1970) mod i == 0]. This returns midnight on the
1st day of the next year > t. *)
+
+val check_valid_variable_name : string -> unit
+(** Check that [name] is a valid variable name that users are permitted
+ to set, and raise [Failure] if it is not. *)