extern crate fs_extra;
use clap::Parser;
use fs_extra::dir::{self, TransitProcess, copy_with_progress as copy_directory};
#[derive(Parser, Debug)]
#[command(version, about, long_about = None)]
struct Cli {
#[arg(long)]
plugin_name: String,
#[arg(long, default_value_t = 8080)]
port: u16,
}
fn main() {
let args = Cli::parse();
let plugin_name = args.plugin_name;
let port = args.port;
println!(
"Plugin: {:?} will be running on port: {:?}",
plugin_name, port
);
let mut copy_options = dir::CopyOptions::new();
copy_options.copy_inside = true;
copy_options.overwrite = true;
let from = "template";
let to = "target";
let progress_handler = |process_info: TransitProcess| {
println!("{}", process_info.total_bytes);
fs_extra::dir::TransitProcessResult::ContinueOrAbort
};
copy_directory(from, to, ©_options, progress_handler)
.expect("Error when calling copy directory!");
}