KeiSeiKit-1.0/_primitives/_rust/kei-gdrive-import/src/cli.rs
Parfii-bot a4e667de10 KeiSeiKit-public — clean state
Single-commit clean baseline after security scrub of niche-tells,
project codenames, internal jargon, and contributor-email leaks.

Contents:
- 100 Rust crates (_primitives/_rust/)
- 37 agent manifests (_manifests/) + generated specs (_generated/)
- 67 user-invocable skills (skills/)
- 33 hooks (hooks/)
- Composition blocks (_blocks/)
- Documentation (docs/, README.md)
- TS adapter packages (_ts_packages/)
- Assembler (_assembler/)
- Roles (_roles/)
- Templates (_templates/)
- Forgejo CI (.forgejo/)

Author: Denis Parfionovich <info@greendragon.info>

License: see LICENSE.
2026-05-01 12:09:03 +08:00

37 lines
1.1 KiB
Rust

//! clap derive structs for the two-verb CLI.
use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(
name = "kei-gdrive-import",
about = "Classify Google-Drive folders as PROJECT / AMBIGUOUS / NOT-A-PROJECT / ALREADY-REPO",
version
)]
pub struct Cli {
#[command(subcommand)]
pub command: Cmd,
}
#[derive(Debug, Subcommand)]
pub enum Cmd {
/// Classify a single folder. Emits one JSON object on stdout.
/// With --remote, queries rclone lsf for marker filenames (no download).
Classify {
/// Folder path. Local FS by default; rclone remote spec with --remote
/// (e.g. `drive:Projects/MyApp`).
path: String,
/// Treat path as an rclone remote spec.
#[arg(long)]
remote: bool,
},
/// Walk one level under <root>; emit a JSON array of classifications.
ScanTree {
/// Root folder. With --remote, treated as an rclone remote spec
/// (e.g. `drive:Projects/`).
root: String,
/// Use `rclone lsjson` instead of local FS.
#[arg(long)]
remote: bool,
},
}