summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fatcat-cli/Cargo.toml2
-rw-r--r--fatcat-cli/src/main.rs15
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>() {