54 lines
1.4 KiB
Rust
54 lines
1.4 KiB
Rust
//! `git.rs` serves as a demonstration of how to use subcommands,
|
|
//! as well as a demonstration of adding documentation to subcommands.
|
|
//! Documentation can be added either through doc comments or
|
|
//! `help`/`about` attributes.
|
|
//!
|
|
//! Running this example with --help prints this message:
|
|
//! -----------------------------------------------------
|
|
//! git 0.3.25
|
|
//! the stupid content tracker
|
|
//!
|
|
//! USAGE:
|
|
//! git <SUBCOMMAND>
|
|
//!
|
|
//! FLAGS:
|
|
//! -h, --help Prints help information
|
|
//! -V, --version Prints version information
|
|
//!
|
|
//! SUBCOMMANDS:
|
|
//! add
|
|
//! fetch fetch branches from remote repository
|
|
//! help Prints this message or the help of the given subcommand(s)
|
|
//! -----------------------------------------------------
|
|
|
|
use structopt::StructOpt;
|
|
|
|
#[derive(StructOpt, Debug)]
|
|
#[structopt(name = "git")]
|
|
/// the stupid content tracker
|
|
enum Opt {
|
|
/// fetch branches from remote repository
|
|
Fetch {
|
|
#[structopt(long)]
|
|
dry_run: bool,
|
|
#[structopt(long)]
|
|
all: bool,
|
|
#[structopt(default_value = "origin")]
|
|
repository: String,
|
|
},
|
|
#[structopt(help = "add files to the staging area")]
|
|
Add {
|
|
#[structopt(short)]
|
|
interactive: bool,
|
|
#[structopt(short)]
|
|
all: bool,
|
|
files: Vec<String>,
|
|
},
|
|
}
|
|
|
|
fn main() {
|
|
let matches = Opt::from_args();
|
|
|
|
println!("{:?}", matches);
|
|
}
|