l-s 0.5.1

Summary any file‘s meta.
use std::path::PathBuf;
use std::{env, fs};

use anyhow::{Context, Result};
use clap::Parser;

/// 负责解析命令行参数
#[derive(Debug, Parser)]
// 这个宏定义命令行工具的信息,比如作者、版本和描述,用于帮助信息输出
#[command(author, version, about = "汇总文件或文件夹的元信息")]
pub struct Cli {
    /// 需要扫描的目标路径,默认当前工作目录
    pub path: Option<PathBuf>,
}

impl Cli {
    pub fn resolve_path(&self) -> Result<PathBuf> {
        let candidate = match &self.path {
            Some(p) => p.clone(),
            None => env::current_dir().context("无法获取当前工作目录")?,
        };

        fs::canonicalize(&candidate)
            .with_context(|| format!("无法解析路径: {}", candidate.display()))
    }
}