diff --git a/src/api2/node/time.rs b/src/api2/node/time.rs index b5f8a860..7a31fbd2 100644 --- a/src/api2/node/time.rs +++ b/src/api2/node/time.rs @@ -9,15 +9,7 @@ use chrono::prelude::*; fn read_etc_localtime() -> Result { - let file = std::fs::File::open("/etc/timezone")?; - - use std::io::{BufRead, BufReader}; - - let mut reader = BufReader::new(file); - - let mut line = String::new(); - - let _ = reader.read_line(&mut line)?; + let line = tools::file_read_firstline("/etc/timezone")?; Ok(line.trim().to_owned()) } diff --git a/src/tools.rs b/src/tools.rs index 3c3fe2ec..6be03a80 100644 --- a/src/tools.rs +++ b/src/tools.rs @@ -59,6 +59,23 @@ pub fn map_struct_mut(buffer: &mut [u8]) -> Result<&mut T, Error> { Ok(unsafe { &mut * (buffer.as_ptr() as *mut T) }) } +pub fn file_read_firstline>(path: P) -> Result { + + let path = path.as_ref(); + + let file = std::fs::File::open(path)?; + + use std::io::{BufRead, BufReader}; + + let mut reader = BufReader::new(file); + + let mut line = String::new(); + + let _ = reader.read_line(&mut line)?; + + Ok(line) +} + /// Atomically write a file. We first create a temporary file, which /// is then renamed. pub fn file_set_contents>(