NG6IT3HBFFLWYWWIBPY3X2UX5CJ5E7TY26W52XGAT3G5C4KAWR3AC
pub fn sanity_check(config_line: &Vec<&str>) -> Result<(), anyhow::Error> {
pub fn sanity_check(config: &Config) -> Result<(), anyhow::Error> {
let mut specifier_prefix: bool = false;
if VALID_SPECIFIERS.contains(
&config
.file_type
.as_str()) == true {
specifier_prefix = true;
}
if String::from(config_line[1])
.chars()
.next()
.unwrap()
.to_string()
!= "/"
{
if config.file_type.len() > 1 {
if VALID_TYPE_MODIFIERS.contains(
&config
.file_type
.chars()
.nth(1)
.unwrap()
.to_string()
.as_str(),
) == false && specifier_prefix == false
{
anyhow::bail!("Invalid file type!")
}
}
if !config.path.is_absolute() {
let config_files = std::fs::read_dir("/usr/lib/tmpfiles.d");
match config_files {
Ok(config_list) => {
for file in config_list {
match file {
Ok(f) => match parser::parse(&f.path()) {
Ok(config) => configs.push(config),
Err(e) => anyhow::bail!("ERROR: Config parsing failed with error {}!", e),
},
Err(e) => anyhow::bail!("ERROR: Config parsing failed with error {}!", e),
}
}
let config_files = std::fs::read_dir("/usr/lib/tmpfiles.d")?;
for file in config_files {
match file {
Ok(f) => match parser::parse(&f.path()) {
Ok(config) => configs.push(config),
Err(e) => anyhow::bail!("Config parsing failed with error:\n{}", e),
},
Err(e) => anyhow::bail!("Config parsing failed with error:\n{}", e),
Ok(k) => continue,
Err(e) => {
anyhow::bail!(
"Failed to create {:#?} with error {}!",
&line.path.as_os_str(),
e
);
}
Ok(..) => continue,
Err(e) => anyhow::bail!("File creation failed with error:\n{}", e),
Ok(k) => continue,
Err(e) => {
anyhow::bail!("Failed to create {:#?} with error {}!", &line.path.as_os_str(), e);
}
Ok(..) => continue,
Err(e) => anyhow::bail!("File creation failed with error:\n{}", e),
Ok(k) => continue,
Err(e) => {
anyhow::bail!("Failed to write to {:#?} with error {}!", &line.path.as_os_str(), e);
}
Ok(..) => continue,
Err(e) => anyhow::bail!("File creation failed with error:\n{}", e),
Ok(k) => continue,
Err(e) => {
anyhow::bail!("Failed to write to {:#?} with error {}!", &line.path.as_os_str(), e);
}
Ok(..) => continue,
Err(e) => anyhow::bail!("File creation failed with error:\n{}", e),
Ok(k) => continue,
Err(e) => {
anyhow::bail!(
"Failed to create {:#?} with error {}!",
&line.path.as_os_str(),
e
);
}
Ok(..) => continue,
Err(e) => anyhow::bail!("Directory creation failed with error:\n{}", e),
Ok(k) => continue,
Err(e) => {
anyhow::bail!(
"Failed to create {:#?} with error {}!",
&line.path.as_os_str(),
e
);
}
Ok(..) => continue,
Err(e) => anyhow::bail!("Directory creation failed with error:\n{}", e),