blob: 5a9f791681e9aba0db78be3a38d75a63cd65958e [file] [log] [blame] [edit]
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>");
}
}