50 lines
1.5 KiB
Diff
50 lines
1.5 KiB
Diff
From e9ce7c44f15a6e03df5d5c4837f8b4d86841cd1f Mon Sep 17 00:00:00 2001
|
|
From: licunlong <licunlong1@huawei.com>
|
|
Date: Wed, 5 Jul 2023 16:42:08 +0800
|
|
Subject: [PATCH] fix: add two helper macroes to help us log message out when
|
|
we operate a file or directory easily
|
|
|
|
---
|
|
libs/basic/src/fs_util.rs | 25 +++++++++++++++++++++++++
|
|
1 file changed, 25 insertions(+)
|
|
|
|
diff --git a/libs/basic/src/fs_util.rs b/libs/basic/src/fs_util.rs
|
|
index ec814e2..3aa93e9 100644
|
|
--- a/libs/basic/src/fs_util.rs
|
|
+++ b/libs/basic/src/fs_util.rs
|
|
@@ -310,6 +310,31 @@ pub fn touch_file(
|
|
fchmod_and_chown(fd, path, mode, uid, gid)
|
|
}
|
|
|
|
+/// do some operations and log message out, returns Io error when fail
|
|
+#[macro_export]
|
|
+macro_rules! do_entry_or_return_io_error {
|
|
+ ($function:expr, $entry:ident, $action:literal) => {
|
|
+ match $function(&$entry) {
|
|
+ Err(e) => {
|
|
+ log::error!("Failed to {} {:?}: {e}", $action, $entry);
|
|
+ return Err(e).context(IoSnafu);
|
|
+ }
|
|
+ Ok(_) => log::debug!("{} {:?} succeeded", $action, $entry),
|
|
+ }
|
|
+ };
|
|
+}
|
|
+
|
|
+/// do some operations and log message out, skip the error
|
|
+#[macro_export]
|
|
+macro_rules! do_entry_log {
|
|
+ ($function:expr, $entry:ident, $action:literal) => {
|
|
+ match $function(&$entry) {
|
|
+ Err(e) => log::error!("Failed to {} {:?}: {e}", $action, $entry),
|
|
+ Ok(_) => log::debug!("{} {:?} succeeded", $action, $entry),
|
|
+ }
|
|
+ };
|
|
+}
|
|
+
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
--
|
|
2.33.0
|
|
|