diff options
author | Teddy Wing | 2020-08-02 09:17:59 +0200 |
---|---|---|
committer | Teddy Wing | 2020-08-02 09:17:59 +0200 |
commit | b5f9bcca207ddb312adcf8e63ac7a430b6f0902f (patch) | |
tree | 59e867fb638ac92eb9d4df4ec7dc3fd4a8a59114 | |
parent | ed26c6671ed9e66543601111f64d02281a78e55f (diff) | |
download | git-suggestion-b5f9bcca207ddb312adcf8e63ac7a430b6f0902f.tar.bz2 |
git-sugpatch: Print usage with no suggestion argumenet
Add `Options` to `Config` to allow us to get a usage string from a
`Config` instance, which is where we create `Options`.
Needed to remove the `Debug` derive on `Config` in order to add the
field as `Options` doesn't implement `Debug`.
-rw-r--r-- | src/bin/git-sugpatch.rs | 5 | ||||
-rw-r--r-- | src/config.rs | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/bin/git-sugpatch.rs b/src/bin/git-sugpatch.rs index 9b2769a..c8fc0a8 100644 --- a/src/bin/git-sugpatch.rs +++ b/src/bin/git-sugpatch.rs @@ -20,6 +20,11 @@ fn main() { }; if config.suggestions.is_empty() { + print!( + "{}", + config.usage("usage: git sugpatch [options] <suggestion>..."), + ); + process::exit(exitcode::USAGE); } diff --git a/src/config.rs b/src/config.rs index 57a4477..4402014 100644 --- a/src/config.rs +++ b/src/config.rs @@ -27,11 +27,12 @@ pub enum Error { Git(#[from] git2::Error), } -#[derive(Debug)] pub struct Config { pub github_token: String, pub o_r: Result<OwnerRepo, owner_repo::Error>, pub suggestions: Vec<String>, + + opts: Options, } impl Config { @@ -53,9 +54,15 @@ impl Config { github_token: Self::github_token(&opt_matches, &git_config)?, o_r: o_r, suggestions: opt_matches.free, + + opts: opts, }) } + pub fn usage(&self, brief: &str) -> String { + self.opts.usage(&brief) + } + fn github_token( opt_matches: &getopts::Matches, git_config: &git2::Config, |