Skip to main content

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

1//! Legacy wire method `file:exists`. Returns bool via `StatFile` probe.
2
3use std::{path::PathBuf, sync::Arc};
4
5use CommonLibrary::{Environment::Requires::Requires, FileSystem::FileSystemReader::FileSystemReader};
6use serde_json::{Value, json};
7
8use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
9
10pub async fn Fn(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
11	let path = Arguments
12		.get(0)
13		.ok_or("Missing file path".to_string())?
14		.as_str()
15		.ok_or("File path must be a string".to_string())?;
16
17	let provider:Arc<dyn FileSystemReader> = RunTime.Environment.Require();
18
19	let exists = provider.StatFile(&PathBuf::from(path)).await.is_ok();
20
21	dev_log!("vfs-verbose", "exists: {} = {}", path, exists);
22
23	Ok(json!(exists))
24}