use std::fs;
use std::os::unix::fs::PermissionsExt;
pub fn file_exists(file_path: &str) -> bool {
if file_path.is_empty() {
return false;
}
std::fs::metadata(file_path).is_ok()
}
pub fn temp_dir() -> std::string::String {
std::env::temp_dir().as_path().display().to_string()
}
pub fn temp_folder(server_name: &str) -> String {
let path = std::path::Path::new(&temp_dir())
.join(format!("{}_tmp", server_name))
.display()
.to_string();
if !file_exists(&path) {
fs::create_dir_all(&path).unwrap();
let mut perms = fs::metadata(&path).unwrap().permissions();
perms.set_mode(0o777);
fs::set_permissions(&path, perms).unwrap();
}
path
}
pub fn upload_folder() -> String {
let app_name = crate::commons::read_env("APP_NAME", "APP_NAME_UNSET");
let path = std::path::Path::new(&temp_folder(&app_name))
.join("uploads")
.display()
.to_string();
if !file_exists(&path) {
std::fs::create_dir_all(&path).unwrap();
}
path
}
pub fn join_folder(dir: &str, dir1: &str) -> String {
let path = std::path::Path::new(dir).join(dir1).display().to_string();
if !file_exists(&path) {
std::fs::create_dir_all(&path).unwrap();
}
path
}
pub fn join_path(dir: &str, dir1: &str) -> String {
let path = std::path::Path::new(dir).join(dir1).display().to_string();
path
}