#![forbid(unsafe_code)]
use std::path::Path;
use crate::constants::{SECRET_DIR_MODE_UNIX, SECRET_FILE_MODE_UNIX};
use crate::errors::{SshCliError, SshCliResult};
pub fn set_secret_file_mode(path: &Path) -> SshCliResult<()> {
#[cfg(unix)]
{
use std::os::unix::fs::PermissionsExt;
let mut perms = std::fs::metadata(path)
.map_err(SshCliError::Io)?
.permissions();
perms.set_mode(SECRET_FILE_MODE_UNIX);
std::fs::set_permissions(path, perms).map_err(SshCliError::Io)?;
}
let _ = path;
Ok(())
}
pub fn set_secret_dir_mode(path: &Path) -> SshCliResult<()> {
#[cfg(unix)]
{
use std::os::unix::fs::PermissionsExt;
let mut perms = std::fs::metadata(path)
.map_err(SshCliError::Io)?
.permissions();
perms.set_mode(SECRET_DIR_MODE_UNIX);
std::fs::set_permissions(path, perms).map_err(SshCliError::Io)?;
}
let _ = path;
Ok(())
}
#[must_use]
pub const fn secret_file_mode() -> u32 {
SECRET_FILE_MODE_UNIX
}
#[must_use]
pub const fn secret_dir_mode() -> u32 {
SECRET_DIR_MODE_UNIX
}