Add 'whenjobs --tail <serial>' to tail output messages from jobs.
[whenjobs.git] / lib / whenutils.ml
index 7d20f75..ca26755 100644 (file)
@@ -37,6 +37,12 @@ module IntMap = struct
   let values m = fold (fun _ v vs -> v :: vs) m []
 end
 
+module BigIntMap = struct
+  include Map.Make (struct type t = big_int let compare = compare_big_int end)
+  let keys m = fold (fun k _ ks -> k :: ks) m []
+  let values m = fold (fun _ v vs -> v :: vs) m []
+end
+
 module StringSet = Set.Make (String)
 
 let (//) = Filename.concat
@@ -50,3 +56,10 @@ let rec filter_map f = function
     match f x with
     | Some y -> y :: filter_map f xs
     | None -> filter_map f xs
+
+let string_of_time_t ?(localtime = false) t =
+  let tm = (if localtime then Unix.localtime else gmtime) t in
+  sprintf "%04d-%02d-%02d %02d:%02d:%02d%s"
+    (1900+tm.tm_year) (1+tm.tm_mon) tm.tm_mday
+    tm.tm_hour tm.tm_min tm.tm_sec
+    (if localtime then "" else " UTC")