From 4fc3b279d3eb86993f7748959a3986be5a6c49a7 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 25 Feb 2026 14:41:37 +0000 Subject: show probe help when invoked with no arguments --- grasp-audit/src/bin/grasp-audit.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/grasp-audit/src/bin/grasp-audit.rs b/grasp-audit/src/bin/grasp-audit.rs index becc4b2..305e5eb 100644 --- a/grasp-audit/src/bin/grasp-audit.rs +++ b/grasp-audit/src/bin/grasp-audit.rs @@ -1,6 +1,6 @@ //! GRASP Audit CLI Tool -use clap::{Parser, Subcommand}; +use clap::{CommandFactory, Parser, Subcommand}; use grasp_audit::*; use std::path::PathBuf; use std::time::Duration; @@ -17,9 +17,9 @@ struct Cli { enum Commands { /// Run a probe/smoke test against a server Probe { - /// Relay URL (e.g., ws://localhost:7000) + /// Relay URL (e.g., wss://relay.ngit.dev) #[arg(short, long)] - relay: String, + relay: Option, /// Output machine-readable JSON #[arg(long, default_value_t = false)] @@ -94,6 +94,17 @@ async fn main() -> Result<()> { nsec, create_repo, } => { + let relay = match relay { + Some(r) => r, + None => { + // Print probe-specific help and exit cleanly + let mut cmd = Cli::command(); + let _ = cmd.find_subcommand_mut("probe").unwrap().print_help(); + println!(); + return Ok(()); + } + }; + // Parse nsec if provided let keys = if let Some(nsec_str) = nsec { use nostr_sdk::prelude::SecretKey; -- cgit v1.2.3