From 627e6f64b0cd359a8f03d45ab093592f000cf6e6 Mon Sep 17 00:00:00 2001 From: "rjones@thinkpad.home.annexia.org" Date: Tue, 12 Feb 2008 20:22:43 +0000 Subject: Support for calendar >= 2.0 --- virt-top/.depend | 6 +++-- virt-top/Makefile.in | 9 +++++-- virt-top/virt_top_calendar.ml | 51 ---------------------------------------- virt-top/virt_top_calendar1.ml | 51 ++++++++++++++++++++++++++++++++++++++++ virt-top/virt_top_calendar2.ml | 53 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 115 insertions(+), 55 deletions(-) mode change 100755 => 100644 virt-top/.depend delete mode 100755 virt-top/virt_top_calendar.ml create mode 100755 virt-top/virt_top_calendar1.ml create mode 100755 virt-top/virt_top_calendar2.ml (limited to 'virt-top') diff --git a/virt-top/.depend b/virt-top/.depend old mode 100755 new mode 100644 index 97dce08..8a8d99e --- a/virt-top/.depend +++ b/virt-top/.depend @@ -1,7 +1,9 @@ virt_top.cmi: ../libvirt/libvirt.cmi virt_top_utils.cmi: ../libvirt/libvirt.cmi -virt_top_calendar.cmo: virt_top.cmi -virt_top_calendar.cmx: virt_top.cmx +virt_top_calendar1.cmo: virt_top.cmi +virt_top_calendar1.cmx: virt_top.cmx +virt_top_calendar2.cmo: virt_top.cmi +virt_top_calendar2.cmx: virt_top.cmx virt_top_csv.cmo: virt_top.cmi virt_top_csv.cmx: virt_top.cmx virt_top_main.cmo: virt_top.cmi ../libvirt/libvirt.cmi diff --git a/virt-top/Makefile.in b/virt-top/Makefile.in index 1b80472..d31cfc4 100755 --- a/virt-top/Makefile.in +++ b/virt-top/Makefile.in @@ -29,6 +29,7 @@ pkg_curses = @pkg_curses@ pkg_xml_light = @pkg_xml_light@ pkg_csv = @pkg_csv@ pkg_calendar = @pkg_calendar@ +pkg_calendar2 = @pkg_calendar2@ OCAMLCPACKAGES := -package unix,extlib,curses,str @@ -41,8 +42,12 @@ ifeq ($(pkg_csv),yes) OBJS += virt_top_csv.cmo OCAMLCPACKAGES := $(OCAMLCPACKAGES),csv endif -ifeq ($(pkg_calendar),yes) -OBJS += virt_top_calendar.cmo +ifneq ($(pkg_calendar),) +OBJS += virt_top_calendar1.cmo +OCAMLCPACKAGES := $(OCAMLCPACKAGES),calendar +endif +ifneq ($(pkg_calendar2),) +OBJS += virt_top_calendar2.cmo OCAMLCPACKAGES := $(OCAMLCPACKAGES),calendar endif OBJS += virt_top_main.cmo diff --git a/virt-top/virt_top_calendar.ml b/virt-top/virt_top_calendar.ml deleted file mode 100755 index a99f90f..0000000 --- a/virt-top/virt_top_calendar.ml +++ /dev/null @@ -1,51 +0,0 @@ -(* 'top'-like tool for libvirt domains. - (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc. - http://libvirt.org/ - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - This file contains all code which requires ocaml-calendar. -*) - -open Printf -open ExtString ;; - -Virt_top.parse_date_time := -fun time -> - let cal : Calendar.t = - if String.starts_with time "+" then ( (* +something *) - let period = String.sub time 1 (String.length time - 1) in - let period = - if String.contains period ':' then ( (* +HH:MM:SS *) - let t = Printer.TimePrinter.from_string period in - let hh = Time.hour t and mm = Time.minute t and ss = Time.second t in - Calendar.Period.make 0 0 0 hh mm ss - ) else (* +seconds *) - Calendar.Period.second (int_of_string period) in - (* Add it as an offset from the current time. *) - Calendar.add (Calendar.now ()) period - ) else ( - if String.contains time '-' then (* YYYY-MM-DD HH:MM:SS *) - Printer.CalendarPrinter.from_string time - else ( (* HH:MM:SS *) - let time = Printer.TimePrinter.from_string time in - Calendar.create (Date.today ()) time - ) - ) in - - eprintf "end time: %s\n" (Printer.CalendarPrinter.to_string cal); - - (* Convert to a time_t, adjusting for the current timezone. *) - fst (Unix.mktime (Calendar.to_unixtm cal)) diff --git a/virt-top/virt_top_calendar1.ml b/virt-top/virt_top_calendar1.ml new file mode 100755 index 0000000..438a791 --- /dev/null +++ b/virt-top/virt_top_calendar1.ml @@ -0,0 +1,51 @@ +(* 'top'-like tool for libvirt domains. + (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc. + http://libvirt.org/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + This file contains all code which requires ocaml-calendar < 2.0 +*) + +open Printf +open ExtString ;; + +Virt_top.parse_date_time := +fun time -> + let cal : Calendar.t = + if String.starts_with time "+" then ( (* +something *) + let period = String.sub time 1 (String.length time - 1) in + let period = + if String.contains period ':' then ( (* +HH:MM:SS *) + let t = Printer.TimePrinter.from_string period in + let hh = Time.hour t and mm = Time.minute t and ss = Time.second t in + Calendar.Period.make 0 0 0 hh mm ss + ) else (* +seconds *) + Calendar.Period.second (int_of_string period) in + (* Add it as an offset from the current time. *) + Calendar.add (Calendar.now ()) period + ) else ( + if String.contains time '-' then (* YYYY-MM-DD HH:MM:SS *) + Printer.CalendarPrinter.from_string time + else ( (* HH:MM:SS *) + let time = Printer.TimePrinter.from_string time in + Calendar.create (Date.today ()) time + ) + ) in + + eprintf "end time: %s\n" (Printer.CalendarPrinter.to_string cal); + + (* Convert to a time_t, adjusting for the current timezone. *) + fst (Unix.mktime (Calendar.to_unixtm cal)) diff --git a/virt-top/virt_top_calendar2.ml b/virt-top/virt_top_calendar2.ml new file mode 100755 index 0000000..dd00c79 --- /dev/null +++ b/virt-top/virt_top_calendar2.ml @@ -0,0 +1,53 @@ +(* 'top'-like tool for libvirt domains. + (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc. + http://libvirt.org/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + This file contains all code which requires ocaml-calendar >= 2.0 +*) + +open CalendarLib + +open Printf +open ExtString ;; + +Virt_top.parse_date_time := +fun time -> + let cal : Calendar.t = + if String.starts_with time "+" then ( (* +something *) + let period = String.sub time 1 (String.length time - 1) in + let period = + if String.contains period ':' then ( (* +HH:MM:SS *) + let t = Printer.TimePrinter.from_string period in + let hh = Time.hour t and mm = Time.minute t and ss = Time.second t in + Calendar.Period.make 0 0 0 hh mm ss + ) else (* +seconds *) + Calendar.Period.second (int_of_string period) in + (* Add it as an offset from the current time. *) + Calendar.add (Calendar.now ()) period + ) else ( + if String.contains time '-' then (* YYYY-MM-DD HH:MM:SS *) + Printer.CalendarPrinter.from_string time + else ( (* HH:MM:SS *) + let time = Printer.TimePrinter.from_string time in + Calendar.create (Date.today ()) time + ) + ) in + + eprintf "end time: %s\n" (Printer.CalendarPrinter.to_string cal); + + (* Convert to a time_t, adjusting for the current timezone. *) + fst (Unix.mktime (Calendar.to_unixtm cal)) -- cgit