refactor: reworked f6a142fd1c

This commit is contained in:
Observer KRypt0n_ 2023-05-20 16:04:50 +02:00
parent e1f864c7fb
commit 72f2c9699b
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2

View file

@ -1,6 +1,7 @@
use std::path::Path;
use serde::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue; use serde_json::Value as JsonValue;
use std::fs::metadata;
mod mounts; mod mounts;
@ -142,52 +143,27 @@ impl Sandbox {
} }
if self.isolate_home { if self.isolate_home {
match metadata("/home") { if Path::new("/home").is_dir() {
Ok(meta) => { command.push_str(" --tmpfs /home");
if meta.is_dir() {
command.push_str(" --tmpfs /home");
} else {
tracing::info!("/var/home is not a directory.")
}
},
Err(_) => tracing::info!("/home does not exist.")
} }
match metadata("/var/home") {
Ok(meta) => { if Path::new("/var/home").is_dir() {
if meta.is_dir() { command.push_str(" --tmpfs /var/home");
command.push_str(" --tmpfs /var/home");
} else {
tracing::info!("/var/home is not a directory.")
}
},
Err(_) => tracing::info!("/var/home does not exist.")
} }
if let Ok(user) = std::env::var("USER") { if let Ok(user) = std::env::var("USER") {
let dir = format!("/var/home/{}", user.trim()); let dir = format!("/var/home/{}", user.trim());
match metadata(&dir) {
Ok(meta) => { if Path::new(&dir).is_dir() {
if meta.is_dir() { command += &format!(" --tmpfs '{dir}'");
command += &format!(" --tmpfs '{}'", dir);
} else {
tracing::info!("{} is not a directory.", dir)
}
},
Err(_) => tracing::info!("{} does not exist.", dir)
} }
} }
if let Ok(home) = std::env::var("HOME") { if let Ok(home) = std::env::var("HOME") {
let dir = home.trim(); let dir = home.trim();
match metadata(dir) {
Ok(meta) => { if Path::new(&dir).is_dir() {
if meta.is_dir() { command += &format!(" --tmpfs '{dir}'");
command += &format!(" --tmpfs '{}'", dir);
} else {
tracing::info!("{} is not a directory.", dir)
}
},
Err(_) => tracing::info!("{} does not exist.", dir)
} }
} }
} }