peach-workspace/peach-config/src/set_permissions.rs

28 lines
1.3 KiB
Rust
Raw Normal View History

use lazy_static::lazy_static;
use peach_lib::config_manager::get_config_value;
2021-12-18 15:00:40 +00:00
use crate::error::PeachConfigError;
use crate::utils::cmd;
lazy_static! {
2022-05-12 10:53:06 +00:00
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");
}
2021-12-18 15:00:40 +00:00
/// 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 ]");
2022-05-12 10:53:06 +00:00
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])?;
2021-12-18 15:00:40 +00:00
println!("[ PERMISSIONS SUCCESSFULLY UPDATED ]");
Ok(())
}