avoid chrono dependency, depend on proxmox 0.3.8
- remove chrono dependency - depend on proxmox 0.3.8 - remove epoch_now, epoch_now_u64 and epoch_now_f64 - remove tm_editor (moved to proxmox crate) - use new helpers from proxmox 0.3.8 * epoch_i64 and epoch_f64 * parse_rfc3339 * epoch_to_rfc3339_utc * strftime_local - BackupDir changes: * store epoch and rfc3339 string instead of DateTime * backup_time_to_string now return a Result * remove unnecessary TryFrom<(BackupGroup, i64)> for BackupDir - DynamicIndexHeader: change ctime to i64 - FixedIndexHeader: change ctime to i64
This commit is contained in:
@ -3,8 +3,9 @@ use std::convert::TryInto;
|
||||
use anyhow::Error;
|
||||
use bitflags::bitflags;
|
||||
|
||||
use proxmox::tools::time::TmEditor;
|
||||
|
||||
pub use super::parse_time::*;
|
||||
use super::tm_editor::*;
|
||||
|
||||
bitflags!{
|
||||
#[derive(Default)]
|
||||
@ -161,7 +162,7 @@ pub fn compute_next_event(
|
||||
|
||||
let all_days = event.days.is_empty() || event.days.is_all();
|
||||
|
||||
let mut t = TmEditor::new(last, utc)?;
|
||||
let mut t = TmEditor::with_epoch(last, utc)?;
|
||||
|
||||
let mut count = 0;
|
||||
|
||||
|
@ -1,119 +0,0 @@
|
||||
use anyhow::Error;
|
||||
|
||||
use proxmox::tools::time::*;
|
||||
|
||||
pub struct TmEditor {
|
||||
utc: bool,
|
||||
t: libc::tm,
|
||||
}
|
||||
|
||||
impl TmEditor {
|
||||
|
||||
pub fn new(epoch: i64, utc: bool) -> Result<Self, Error> {
|
||||
let t = if utc { gmtime(epoch)? } else { localtime(epoch)? };
|
||||
Ok(Self { utc, t })
|
||||
}
|
||||
|
||||
pub fn into_epoch(mut self) -> Result<i64, Error> {
|
||||
let epoch = if self.utc { timegm(&mut self.t)? } else { timelocal(&mut self.t)? };
|
||||
Ok(epoch)
|
||||
}
|
||||
|
||||
/// increases the year by 'years' and resets all smaller fields to their minimum
|
||||
pub fn add_years(&mut self, years: libc::c_int) -> Result<(), Error> {
|
||||
if years == 0 { return Ok(()); }
|
||||
self.t.tm_mon = 0;
|
||||
self.t.tm_mday = 1;
|
||||
self.t.tm_hour = 0;
|
||||
self.t.tm_min = 0;
|
||||
self.t.tm_sec = 0;
|
||||
self.t.tm_year += years;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
/// increases the month by 'months' and resets all smaller fields to their minimum
|
||||
pub fn add_months(&mut self, months: libc::c_int) -> Result<(), Error> {
|
||||
if months == 0 { return Ok(()); }
|
||||
self.t.tm_mday = 1;
|
||||
self.t.tm_hour = 0;
|
||||
self.t.tm_min = 0;
|
||||
self.t.tm_sec = 0;
|
||||
self.t.tm_mon += months;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
/// increases the day by 'days' and resets all smaller fields to their minimum
|
||||
pub fn add_days(&mut self, days: libc::c_int) -> Result<(), Error> {
|
||||
if days == 0 { return Ok(()); }
|
||||
self.t.tm_hour = 0;
|
||||
self.t.tm_min = 0;
|
||||
self.t.tm_sec = 0;
|
||||
self.t.tm_mday += days;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn year(&self) -> libc::c_int { self.t.tm_year + 1900 } // see man mktime
|
||||
pub fn month(&self) -> libc::c_int { self.t.tm_mon + 1 }
|
||||
pub fn day(&self) -> libc::c_int { self.t.tm_mday }
|
||||
pub fn hour(&self) -> libc::c_int { self.t.tm_hour }
|
||||
pub fn min(&self) -> libc::c_int { self.t.tm_min }
|
||||
pub fn sec(&self) -> libc::c_int { self.t.tm_sec }
|
||||
|
||||
// Note: tm_wday (0-6, Sunday = 0) => convert to Sunday = 6
|
||||
pub fn day_num(&self) -> libc::c_int {
|
||||
(self.t.tm_wday + 6) % 7
|
||||
}
|
||||
|
||||
pub fn set_time(&mut self, hour: libc::c_int, min: libc::c_int, sec: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_hour = hour;
|
||||
self.t.tm_min = min;
|
||||
self.t.tm_sec = sec;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn set_min_sec(&mut self, min: libc::c_int, sec: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_min = min;
|
||||
self.t.tm_sec = sec;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
fn normalize_time(&mut self) -> Result<(), Error> {
|
||||
// libc normalizes it for us
|
||||
if self.utc {
|
||||
timegm(&mut self.t)?;
|
||||
} else {
|
||||
timelocal(&mut self.t)?;
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn set_sec(&mut self, v: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_sec = v;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn set_min(&mut self, v: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_min = v;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn set_hour(&mut self, v: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_hour = v;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn set_mday(&mut self, v: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_mday = v;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn set_mon(&mut self, v: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_mon = v - 1;
|
||||
self.normalize_time()
|
||||
}
|
||||
|
||||
pub fn set_year(&mut self, v: libc::c_int) -> Result<(), Error> {
|
||||
self.t.tm_year = v - 1900;
|
||||
self.normalize_time()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user