use lazy_static::lazy_static; use peach_lib::config_manager::get_config_value; use crate::error::PeachConfigError; use crate::utils::cmd; lazy_static! { pub static ref PEACH_CONFIGDIR: String = get_config_value("PEACH_CONFIGDIR") .expect("Failed to load config value for PEACH_CONFIGDIR"); pub static ref PEACH_WEBDIR: String = get_config_value("PEACH_WEBDIR").expect("Failed to load config value for PEACH_WEBDIR"); pub static ref PEACH_HOMEDIR: String = get_config_value("PEACH_HOMEDIR").expect("Failed to load config value for PEACH_HOMEDIR"); } /// Utility function to set correct file permissions on the PeachCloud device. /// Accidentally changing file permissions is a fairly common thing to happen, /// so this is a useful CLI function for quickly correcting anything that may be out of order. pub fn set_permissions() -> Result<(), PeachConfigError> { println!("[ UPDATING FILE PERMISSIONS ON PEACHCLOUD DEVICE ]"); cmd(&["chmod", "-R", "u+rwX,g+rwX", &PEACH_CONFIGDIR])?; cmd(&["chown", "-R", "peach:peach", &PEACH_CONFIGDIR])?; cmd(&["chmod", "-R", "u+rwX,g+rwX", &PEACH_WEBDIR])?; cmd(&["chown", "-R", "peach:peach", &PEACH_WEBDIR])?; cmd(&["chmod", "-R", "u+rwX,g+rwX", &PEACH_HOMEDIR])?; cmd(&["chown", "-R", "peach:peach", &PEACH_HOMEDIR])?; println!("[ PERMISSIONS SUCCESSFULLY UPDATED ]"); Ok(()) }