diff options
Diffstat (limited to 'src/bin')
| -rw-r--r-- | src/bin/git-sugpatch.rs | 45 | 
1 files changed, 5 insertions, 40 deletions
diff --git a/src/bin/git-sugpatch.rs b/src/bin/git-sugpatch.rs index c4969b1..5b95519 100644 --- a/src/bin/git-sugpatch.rs +++ b/src/bin/git-sugpatch.rs @@ -3,8 +3,7 @@ use std::process;  use exitcode; -use github_suggestion::{Client, SuggestionUrl}; -use github_suggestion_cli::{gseprintln, is_suggestion_id}; +use github_suggestion_cli::{gseprintln, for_suggestion};  use github_suggestion_cli::config::Config; @@ -24,42 +23,8 @@ fn main() {          process::exit(111);      } -    for suggestion_arg in config.suggestions { -        let suggestion = if match is_suggestion_id(&suggestion_arg) { -            Ok(p) => p, -            Err(e) => { -                gseprintln!(e); - -                process::exit(exitcode::SOFTWARE); -            } -        } { -            let o_r = match &config.o_r { -                Ok(o_r) => o_r, -                Err(e) => { -                    gseprintln!(e); -                    process::exit(exitcode::CONFIG); -                }, -            }; - -            let client = Client::new( -                &config.github_token, -                &o_r.owner, -                &o_r.repo, -            ).unwrap(); - -            client.fetch(&suggestion_arg).unwrap() -        } else { -            let url: SuggestionUrl = suggestion_arg.parse().unwrap(); - -            let client = Client::new( -                &config.github_token, -                &url.owner, -                &url.repo, -            ).unwrap(); - -            client.fetch(&url.comment_id).unwrap() -        }; - -        print!("{}", suggestion.diff().unwrap()); -    } +    for_suggestion( +        &config, +        |suggestion| print!("{}", suggestion.diff().unwrap()), +    );  }  | 
