cosmic-files/examples/copy.rs

37 lines
1.1 KiB
Rust
Raw Normal View History

2024-11-19 08:15:47 -07:00
use cosmic_files::operation::{recursive::Context, Controller, ReplaceResult};
2024-11-13 14:47:35 -07:00
use std::{error::Error, io, path::PathBuf};
fn main() -> Result<(), Box<dyn Error>> {
2024-11-19 08:15:47 -07:00
let mut context = Context::new(Controller::new())
.on_progress(|op, progress| {
println!("{:?}: {:?}", op.to, progress);
})
.on_replace(|op| {
println!("replace {:?}? (y/N)", op.to);
let mut line = String::new();
match io::stdin().read_line(&mut line) {
Ok(_) => {
if line == "y" {
ReplaceResult::Replace(false)
} else {
ReplaceResult::Skip(false)
}
}
Err(err) => {
eprintln!("failed to read stdin: {}", err);
ReplaceResult::Cancel
}
}
});
2024-11-13 14:47:35 -07:00
context.recursive_copy_or_move(
vec![(PathBuf::from("test/a"), PathBuf::from("test/b"))],
false,
)?;
context.recursive_copy_or_move(
vec![(PathBuf::from("test/b"), PathBuf::from("test/c"))],
true,
)?;
Ok(())
}