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, | 
