Fix filesystem metric parsing for correct mount point names
All checks were successful
Build and Release / build-and-release (push) Successful in 2m10s
All checks were successful
Build and Release / build-and-release (push) Successful in 2m10s
- Fix extract_filesystem_metric() to handle multi-underscore metric names correctly - Parse known metric suffixes (usage_percent, mount_point, available_gb, etc.) - Prevent incorrect parsing like boot_mount_point -> fs_name='boot_mount', metric_type='point' - Should now correctly show /boot and / instead of /boot/mount and /root/mount
This commit is contained in:
@@ -384,11 +384,14 @@ impl SystemWidget {
|
||||
if let Some(fs_start) = metric_name.find("_fs_") {
|
||||
let after_fs = &metric_name[fs_start + 4..]; // Skip "_fs_"
|
||||
|
||||
// Find the last underscore to separate filesystem name from metric type
|
||||
if let Some(last_underscore) = after_fs.rfind('_') {
|
||||
let fs_name = after_fs[..last_underscore].to_string();
|
||||
let metric_type = after_fs[last_underscore + 1..].to_string();
|
||||
return (Some(fs_name), Some(metric_type));
|
||||
// Look for known metric suffixes (these can contain underscores)
|
||||
let known_suffixes = ["usage_percent", "used_gb", "total_gb", "available_gb", "mount_point"];
|
||||
|
||||
for suffix in known_suffixes {
|
||||
if after_fs.ends_with(suffix) {
|
||||
let fs_name = after_fs[..after_fs.len() - suffix.len() - 1].to_string(); // Remove suffix + underscore
|
||||
return (Some(fs_name), Some(suffix.to_string()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user