diff options
Diffstat (limited to 'extra/git2/examples/add.rs')
-rw-r--r-- | extra/git2/examples/add.rs | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/extra/git2/examples/add.rs b/extra/git2/examples/add.rs deleted file mode 100644 index 25e972c7a..000000000 --- a/extra/git2/examples/add.rs +++ /dev/null @@ -1,81 +0,0 @@ -/* - * libgit2 "add" example - shows how to modify the index - * - * Written by the libgit2 contributors - * - * To the extent possible under law, the author(s) have dedicated all copyright - * and related and neighboring rights to this software to the public domain - * worldwide. This software is distributed without any warranty. - * - * You should have received a copy of the CC0 Public Domain Dedication along - * with this software. If not, see - * <http://creativecommons.org/publicdomain/zero/1.0/>. - */ - -#![deny(warnings)] -#![allow(trivial_casts)] - -use git2::Repository; -use std::path::Path; -use structopt::StructOpt; - -#[derive(StructOpt)] -struct Args { - #[structopt(name = "spec")] - arg_spec: Vec<String>, - #[structopt(name = "dry_run", short = "n", long)] - /// dry run - flag_dry_run: bool, - #[structopt(name = "verbose", short, long)] - /// be verbose - flag_verbose: bool, - #[structopt(name = "update", short, long)] - /// update tracked files - flag_update: bool, -} - -fn run(args: &Args) -> Result<(), git2::Error> { - let repo = Repository::open(&Path::new("."))?; - let mut index = repo.index()?; - - let cb = &mut |path: &Path, _matched_spec: &[u8]| -> i32 { - let status = repo.status_file(path).unwrap(); - - let ret = if status.contains(git2::Status::WT_MODIFIED) - || status.contains(git2::Status::WT_NEW) - { - println!("add '{}'", path.display()); - 0 - } else { - 1 - }; - - if args.flag_dry_run { - 1 - } else { - ret - } - }; - let cb = if args.flag_verbose || args.flag_update { - Some(cb as &mut git2::IndexMatchedPath) - } else { - None - }; - - if args.flag_update { - index.update_all(args.arg_spec.iter(), cb)?; - } else { - index.add_all(args.arg_spec.iter(), git2::IndexAddOption::DEFAULT, cb)?; - } - - index.write()?; - Ok(()) -} - -fn main() { - let args = Args::from_args(); - match run(&args) { - Ok(()) => {} - Err(e) => println!("error: {}", e), - } -} |