From 41ea1a605bac51c54d129591e3b17418fcf58843 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sylwester=20R=C4=85pa=C5=82a?= <sylwesterrapala@outlook.com>
Date: Thu, 16 Jul 2020 14:33:21 +0200
Subject: [PATCH] Add auth-token flag. Group auth-token and certs into auth
 clap::ArgGroup

---
 examples/nats-box/main.rs | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/examples/nats-box/main.rs b/examples/nats-box/main.rs
index 3320ff1cc..a403d9539 100644
--- a/examples/nats-box/main.rs
+++ b/examples/nats-box/main.rs
@@ -1,17 +1,21 @@
 use nats;
 use quicli::prelude::*;
-use structopt::StructOpt;
+use structopt::{clap::ArgGroup, StructOpt};
 
 /// NATS utility that can perform basic publish, subscribe, request and reply functions.
 #[derive(Debug, StructOpt)]
+#[structopt(group = ArgGroup::with_name("auth").required(false))]
 struct Cli {
     /// NATS server
     #[structopt(long, short, default_value = "demo.nats.io")]
     server: String,
 
     /// User Credentials File
-    #[structopt(long = "creds")]
+    #[structopt(long = "creds", group = "auth")]
     creds: Option<String>,
+    /// Server authorization token
+    #[structopt(long = "auth-token", group = "auth")]
+    auth_token: Option<String>,
 
     /// Command: pub, sub, request, reply
     #[structopt(subcommand)]
@@ -36,6 +40,8 @@ fn main() -> CliResult {
 
     let opts = if let Some(creds_path) = args.creds {
         nats::Options::with_credentials(creds_path)
+    } else if let Some(token) = args.auth_token {
+        nats::Options::with_token(&token)
     } else {
         nats::Options::new()
     };