summaryrefslogtreecommitdiffstats
path: root/sq/src/sq_cli.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sq/src/sq_cli.rs')
-rw-r--r--sq/src/sq_cli.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/sq/src/sq_cli.rs b/sq/src/sq_cli.rs
index e924b8ab..11496248 100644
--- a/sq/src/sq_cli.rs
+++ b/sq/src/sq_cli.rs
@@ -517,6 +517,46 @@ pub fn build() -> App<'static, 'static> {
.about("Manipulates certificate rings")
.setting(AppSettings::SubcommandRequiredElseHelp)
.subcommand(
+ SubCommand::with_name("filter")
+ .about("Joins certs into a certring applying a filter")
+ .long_about(
+ "If multiple predicates are given, they are \
+ or'ed, i.e. a certificate matches if any \
+ of the predicates match. To require all \
+ predicates to match, chain multiple \
+ invocations of this command.")
+ .arg(Arg::with_name("input").value_name("FILE")
+ .multiple(true)
+ .help("Sets the input files to use"))
+ .arg(Arg::with_name("output").value_name("FILE")
+ .long("output")
+ .short("o")
+ .help("Sets the output file to use"))
+ .arg(Arg::with_name("name").value_name("NAME")
+ .long("name")
+ .multiple(true)
+ .number_of_values(1)
+ .help("Match on this name"))
+ .arg(Arg::with_name("email").value_name("ADDRESS")
+ .long("email")
+ .multiple(true)
+ .number_of_values(1)
+ .help("Match on this email address"))
+ .arg(Arg::with_name("domain").value_name("FQDN")
+ .long("domain")
+ .multiple(true)
+ .number_of_values(1)
+ .help("Match on this email domain name"))
+ .arg(Arg::with_name("prune-certs")
+ .long("prune-certs")
+ .short("P")
+ .help("Remove certificate components not matching \
+ the filter"))
+ .arg(Arg::with_name("binary")
+ .long("binary")
+ .short("B")
+ .help("Don't ASCII-armor the certring")))
+ .subcommand(
SubCommand::with_name("join")
.about("Joins certs into a certring")
.arg(Arg::with_name("input").value_name("FILE")