feat(info): Add new functions
version - send info about rclone version stats - check info about operation
This commit is contained in:
1 parent
559af7d594
commit
3bcfbe573e
1 file changed
+26
@@ -0,0 +1,26 @@
|
||||
use super::*;
|
||||
use crate::rclone_install::RcloneApp;
|
||||
use serde_json::Value;
|
||||
use std::collections::HashMap;
|
||||
|
||||
/// Получить версию в удобочитаемом формате
|
||||
pub fn version(app: &RcloneApp) -> Result<HashMap<String, String>, String> {
|
||||
let output = app.run_command(&["version"])?;
|
||||
let mut version_info = HashMap::new();
|
||||
|
||||
for line in output.lines() {
|
||||
if let Some((key, value)) = line.split_once(':') {
|
||||
version_info.insert(key.trim().to_string(), value.trim().to_string());
|
||||
}
|
||||
}
|
||||
|
||||
Ok(version_info)
|
||||
}
|
||||
|
||||
/// Получить статистику текущих операций
|
||||
pub fn stats(app: &RcloneApp) -> Result<Value, String> {
|
||||
let output = app.run_command(&["core", "stats"])?;
|
||||
let stats: Value =
|
||||
serde_json::from_str(&output).map_err(|e| format!("Ошибка парсинга статистики: {}", e))?;
|
||||
Ok(stats)
|
||||
}
|
||||
Reference in new issue
Block a user