aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin
diff options
context:
space:
mode:
authorTeddy Wing2020-08-02 05:30:03 +0200
committerTeddy Wing2020-08-02 05:30:03 +0200
commit344f4d3fcd7d36e67ca04dd2e3e21f0e8b12b0dd (patch)
tree9c274f631ffca2c4c9e08a7d4a221a2f8b80d082 /src/bin
parent3f125dae8fa2e97354c3c7bc4def4bac1e9eacf1 (diff)
downloadgit-suggestion-344f4d3fcd7d36e67ca04dd2e3e21f0e8b12b0dd.tar.bz2
git-sugpatch: Move the suggestion arguments loop to a new function
Split this out into a separate function because I want to reuse it in `git-sugapply`.
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/git-sugpatch.rs45
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()),
+ );
}