1use crate::*;
2#[derive(Parser, Debug, Clone)]
3pub struct ListOption {
4 #[clap(flatten)]
5 pub base: BaseOptions,
6 #[clap(flatten)]
7 pub filter: BaseFilterOptions,
8}
9
10#[derive(Args, Debug, Clone)]
11pub struct BaseOptions {
12 #[clap(
14 short = 'd',
15 long = "base-dir",
16 env = "GIT_PROJECT_BASE_DIR",
17 default_value_t = String::from("."),
18 )]
19 pub base_dir: String,
20 #[clap(short = 'r', long = "deep-recurse", default_value_t = true)]
22 pub deep_recurse: bool,
23}
24
25#[derive(Args, Debug, Clone)]
26pub struct BaseFilterOptions {
27 #[clap( short = 'n', default_value_t = String::from(".git"))]
28 pub name: String,
29}
30
31#[derive(clap::ValueEnum, Clone, Debug)]
32pub enum FilterKind {
33 File,
34 Directory,
35}
36#[derive(clap::ValueEnum, Clone, Debug)]
37pub enum FilterName {
38 Git,
39 Cargo,
40 Pubspec,
41}
42
43pub fn run_list(opt: &ListOption) -> Result<()> {
44 let ret = find_git(opt);
45 println!("{:#?}", ret);
46 Ok(())
47}