Make network device filtering a regex.

Work and home have different naming schemes.
This commit is contained in:
Bill Thiede 2023-07-31 07:44:45 -07:00
parent f51bbf62d9
commit b9935c991f
3 changed files with 6 additions and 3 deletions

1
Cargo.lock generated
View File

@ -208,6 +208,7 @@ dependencies = [
"glob", "glob",
"i3monkit", "i3monkit",
"num_cpus", "num_cpus",
"regex",
"structopt", "structopt",
"thiserror", "thiserror",
] ]

View File

@ -27,3 +27,4 @@ chrono = "0.4"
chrono-tz = "0.5" chrono-tz = "0.5"
glob = "0.3.1" glob = "0.3.1"
thiserror = "1.0.40" thiserror = "1.0.40"
regex = "1.9.1"

View File

@ -7,12 +7,12 @@ use std::{
}; };
use i3monkit::{Block, Widget, WidgetUpdate}; use i3monkit::{Block, Widget, WidgetUpdate};
use regex::Regex;
use crate::spark; use crate::spark;
const NETWORK_PATH_PREFIX: &str = "/sys/class/net"; const NETWORK_PATH_PREFIX: &str = "/sys/class/net";
const NETWORK_STAT_SUFFIX: &str = "statistics/dummy"; const NETWORK_STAT_SUFFIX: &str = "statistics/dummy";
const DEVICE_PREFIX: &str = "enp";
struct TransferStat { struct TransferStat {
rx: u64, rx: u64,
@ -180,19 +180,20 @@ pub struct AllNetworkSpeedWidget {
} }
impl AllNetworkSpeedWidget { impl AllNetworkSpeedWidget {
pub fn new(num_samples: usize) -> Self { pub fn new(num_samples: usize) -> Self {
let dev_pat= Regex::new("(enp|eno).*").expect("bad re");
let nics = std::fs::read_dir(NETWORK_PATH_PREFIX) let nics = std::fs::read_dir(NETWORK_PATH_PREFIX)
.expect(&format!("couldn't list {NETWORK_PATH_PREFIX}")) .expect(&format!("couldn't list {NETWORK_PATH_PREFIX}"))
.filter_map(|dir| { .filter_map(|dir| {
let d = dir.unwrap(); let d = dir.unwrap();
let p = d.file_name(); let p = d.file_name();
let p = p.to_string_lossy(); let p = p.to_string_lossy();
if p.starts_with(DEVICE_PREFIX) { if dev_pat.is_match(&p) {
Some(NetworkSpeedWidget::new(&p, num_samples)) Some(NetworkSpeedWidget::new(&p, num_samples))
} else { } else {
None None
} }
}) })
.collect(); .collect();
AllNetworkSpeedWidget { num_samples, nics } AllNetworkSpeedWidget { num_samples, nics }
} }