yolo-set 0.1.0

A CLI tool for managing YOLO datasets — merge, deduplicate, remap labels, and more.
use std::path::PathBuf;
use arglet::arg::CliCommand;

pub mod model;
pub mod cli;
pub mod yolo;

use crate::model::merge_mode::MergeMode;
use crate::cli::merge::yolo_merge;


fn main() {
	let cmd = CliCommand::from(std::env::args().collect::<Vec<String>>());
	let sub_command = cmd.subcommand().expect("找不到合适的子命令");
	match sub_command.as_str() {
		"merge"=>{
			let src_folder = PathBuf::from(cmd.positional.get(1).expect("找不到<输入源数据集文件夹路径>"));
			let master_dataset = PathBuf::from(cmd.positional.get(2).expect("未指定<主数据集文件夹路径>"));
			let mode = match cmd.long.get("move"){
				Some(_)=>{MergeMode::Move}
				None=>{MergeMode::Copy}
			};
			yolo_merge(&src_folder, &master_dataset, mode).expect("Damn bro,大失败!!");
		}
		"help"=>{println!("暂时只有一个子命令 merge:\r\n\tmerge <src_folder> <master_dataset> [--move]")}
		_=>{ println!("未知的子命令,程序结束"); return; }
	}
}