diff options
| -rw-r--r-- | fatcat-cli/Cargo.toml | 2 | ||||
| -rw-r--r-- | fatcat-cli/src/main.rs | 15 | 
2 files changed, 17 insertions, 0 deletions
| diff --git a/fatcat-cli/Cargo.toml b/fatcat-cli/Cargo.toml index f7885b6..ac65298 100644 --- a/fatcat-cli/Cargo.toml +++ b/fatcat-cli/Cargo.toml @@ -54,4 +54,6 @@ description will go here.  assets = [      ["target/release/fatcat-cli", "usr/bin/", "755"],      ["../extra/fatcat-cli.1", "usr/share/man/man1/", "644"], +    ["../extra/fatcat-cli.bash_completions", "usr/share/bash-completion/completions/fatcat-cli", "644"], +    ["../extra/fatcat-cli.zsh_completions", "usr/share/zsh/vendor-completions/_fatcat-cli", "644"],  ] diff --git a/fatcat-cli/src/main.rs b/fatcat-cli/src/main.rs index 3b4a81b..6e3f2c7 100644 --- a/fatcat-cli/src/main.rs +++ b/fatcat-cli/src/main.rs @@ -44,6 +44,12 @@ struct Opt {      #[structopt(global = true, long, short = "v", parse(from_occurrences))]      verbose: i8, +    #[structopt(long = "--shell-completions", hidden = true)] +    shell_completions: Option<structopt::clap::Shell>, + +    #[structopt(long = "--meow", hidden = true)] +    meow: bool, +      #[structopt(subcommand)]      cmd: Command,  } @@ -288,6 +294,15 @@ fn main() -> Result<()> {      #[cfg(windows)]      colored_json::enable_ansi_support(); +    if let Some(shell) = opt.shell_completions { +        Opt::clap().gen_completions_to("fatcat-cli", shell, &mut std::io::stdout()); +        std::process::exit(0); +    } +    if opt.meow { +        println!("meow meow"); +        std::process::exit(0); +    } +      if let Err(err) = run(opt) {          // Be graceful about some errors          if let Some(io_err) = err.root_cause().downcast_ref::<std::io::Error>() { | 
