X-Git-Url: http://git.annexia.org/?p=whenjobs.git;a=blobdiff_plain;f=lib%2Fwhenfile.ml;h=83e0a074f3fa7045b41d5f7ee5344eb8fca447ac;hp=8fdca1e438db30bc9548fe97532d4707a117fb3d;hb=f3db678247d4ccc04c6ca1655e2eeec17e1bc169;hpb=61cad7bbaf63389b520b695eefdd735bc11a8aa6 diff --git a/lib/whenfile.ml b/lib/whenfile.ml index 8fdca1e..83e0a07 100644 --- a/lib/whenfile.ml +++ b/lib/whenfile.ml @@ -16,27 +16,27 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) -open Whenutils +open Whenexpr open Printf -(* The list of jobs in this file. *) -let jobs = ref [] +(* The state updated during parsing of the file. *) +let state = ref Whenstate.empty -let init () = jobs := [] +let init s = state := s -let add_when_job _loc name e sh = +let add_when_job _loc name cleanup e sh = let e = expr_of_ast _loc e in - let job = { job_loc = _loc; job_name = name; - job_cond = When_job e; job_script = sh; - job_private = no_job_private } in - jobs := job :: !jobs - -let add_every_job _loc name e sh = - let job = { job_loc = _loc; job_name = name; - job_cond = Every_job e; job_script = sh; - job_private = no_job_private } in - jobs := job :: !jobs - -let get_jobs () = - List.rev !jobs + let job = { job_loc = _loc; job_name = name; job_cleanup = cleanup; + job_cond = When_job e; job_script = sh } in + state := Whenstate.add_job !state job + +let add_every_job _loc name cleanup e sh = + let job = { job_loc = _loc; job_name = name; job_cleanup = cleanup; + job_cond = Every_job e; job_script = sh } in + state := Whenstate.add_job !state job + +let set_variable name value = + state := Whenstate.set_variable !state name value + +let get_state () = !state