summaryrefslogtreecommitdiff
path: root/src/utilities.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/utilities.rs')
-rw-r--r--src/utilities.rs30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/utilities.rs b/src/utilities.rs
index 54f1292..aa7a44e 100644
--- a/src/utilities.rs
+++ b/src/utilities.rs
@@ -2,7 +2,29 @@ use std::collections::HashMap;
pub type ConfigHashMap = HashMap<String, HashMap<String, Option<String>>>;
-pub fn die(message: &str) {
- println!("{}", message);
- std::process::exit(1);
-} \ No newline at end of file
+#[macro_export]
+macro_rules! die {
+ ($message:expr) => {
+ println!("{}", $message);
+ std::process::exit(1);
+ }
+}
+
+#[macro_export]
+macro_rules! create_path_or_die {
+ (dir: $path:expr, $message:expr) => {
+ if let Err(_) = std::fs::create_dir($path) {
+ die!($message);
+ }
+ };
+
+ (file: $path:expr, $content:expr, $message:expr) => {
+ if let Ok(mut file) = std::fs::File::create($path) {
+ if let Err(_) = file.write_all($content.as_ref()) {
+ die!($message);
+ }
+ } else {
+ die!($message);
+ }
+ };
+}