Mountain/IPC/WindServiceHandlers/FileSystem/Managed/
FileStat.rs1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3use std::{path::PathBuf, sync::Arc};
7
8use CommonLibrary::{Environment::Requires::Requires, FileSystem::FileSystemReader::FileSystemReader};
9use serde_json::{Value, json};
10
11use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
12
13pub async fn FileStat(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
14 let path = Arguments
15 .get(0)
16 .ok_or("Missing file path".to_string())?
17 .as_str()
18 .ok_or("File path must be a string".to_string())?;
19
20 let provider:Arc<dyn FileSystemReader> = RunTime.Environment.Require();
21
22 let stats = provider
23 .StatFile(&PathBuf::from(path))
24 .await
25 .map_err(|Error| format!("Failed to stat file: {}", Error))?;
26
27 dev_log!("vfs-verbose", "legacy_stat: {}", path);
28 Ok(json!(stats))
29}