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