Skip to main content

Mountain/IPC/WindServiceHandlers/FileSystem/Managed/
FileDelete.rs

1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3//! Legacy wire method `file:delete`. Non-recursive, non-trash.
4
5use std::{path::PathBuf, sync::Arc};
6
7use CommonLibrary::{
8	Environment::Requires::Requires,
9	Error::CommonError::CommonError,
10	FileSystem::FileSystemWriter::FileSystemWriter,
11};
12use serde_json::Value;
13
14use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
15
16pub async fn FileDelete(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
17	let path = Arguments
18		.get(0)
19		.ok_or("Missing file path".to_string())?
20		.as_str()
21		.ok_or("File path must be a string".to_string())?;
22
23	let provider:Arc<dyn FileSystemWriter> = RunTime.Environment.Require();
24
25	provider
26		.Delete(&PathBuf::from(path), false, false)
27		.await
28		.map_err(|e:CommonError| format!("Failed to delete file: {}", e))?;
29
30	dev_log!("vfs-verbose", "deleted: {}", path);
31	Ok(Value::Null)
32}