aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-05-19 13:35:40 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-05-19 13:35:40 +0300
commit70c45dbeb3a7c62a7c87fe7c52e3e6d5a3acb0d5 (patch)
treed1427a4818e61a24021da7a11cc0b3a061fa428c /src
parentfe53984c4092ef00cab51b1ddd77c5b890786670 (diff)
fix: hide explicit client command
refs #187
Diffstat (limited to 'src')
-rw-r--r--src/main.rs32
1 files changed, 15 insertions, 17 deletions
diff --git a/src/main.rs b/src/main.rs
index 2c17e704..efdd08b0 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -211,6 +211,16 @@ fn random_nested_message() -> &'static str {
NESTED_HERDR_MESSAGES[index]
}
+fn exit_if_nested_disabled(config: &config::Config) {
+ if should_block_nested(config) {
+ eprintln!("\x1b[1merror:\x1b[0m nested herdr is disabled by default.");
+ eprintln!("see configuration if you want to enable it.");
+ eprintln!();
+ eprintln!("\x1b[2m\"{}\"\x1b[0m", random_nested_message());
+ std::process::exit(1);
+ }
+}
+
fn main() -> io::Result<()> {
let raw_args: Vec<String> = std::env::args().collect();
let args = match session::configure_from_args(&raw_args) {
@@ -257,8 +267,10 @@ fn main() -> io::Result<()> {
return server::headless::run_server();
}
- // Client mode: connect to an existing server's client socket.
+ // Hidden client mode: connect to an existing server's client socket.
if args.get(1).map(|s| s.as_str()) == Some("client") {
+ let loaded_config = config::Config::load();
+ exit_if_nested_disabled(&loaded_config.config);
return client::run_client();
}
@@ -340,15 +352,7 @@ fn main() -> io::Result<()> {
}
println!();
println!("Advanced commands:");
- for (command, description) in [
- ("herdr server", "Run as headless server"),
- (
- "herdr client",
- "Connect to a running server as a thin client",
- ),
- ] {
- println!(" {command:<32} {description}");
- }
+ println!(" {:<32} Run as headless server", "herdr server");
println!();
println!("Options:");
println!(" --no-session Run monolithically (no server/client, escape hatch)");
@@ -418,13 +422,7 @@ fn main() -> io::Result<()> {
}
let loaded_config = config::Config::load();
- if should_block_nested(&loaded_config.config) {
- eprintln!("\x1b[1merror:\x1b[0m nested herdr is disabled by default.");
- eprintln!("see configuration if you want to enable it.");
- eprintln!();
- eprintln!("\x1b[2m\"{}\"\x1b[0m", random_nested_message());
- std::process::exit(1);
- }
+ exit_if_nested_disabled(&loaded_config.config);
let no_session = args.iter().any(|a| a == "--no-session");