2024-10-16 14:18:46 +03:00

34 lines
766 B
Rust

use std::env;
use std::io::Result;
fn watch_file(filename: &str) -> Result<()> {
let mut watcher = kqueue::Watcher::new()?;
watcher.add_filename(
filename,
kqueue::EventFilter::EVFILT_VNODE,
kqueue::FilterFlag::NOTE_DELETE
| kqueue::FilterFlag::NOTE_WRITE
| kqueue::FilterFlag::NOTE_RENAME,
)?;
watcher.watch()?;
println!("Watching for events, press Ctrl+C to stop...");
for ev in watcher.iter() {
println!("{:?}", ev);
}
Ok(())
}
fn main() {
if let Some(filename) = env::args().nth(1) {
if let Err(err) = watch_file(&filename) {
println!("{:?}", err);
}
} else {
println!("Usage: cargo run --example file <filename>");
}
}