From 91582e8f170964d9e211cd2ac7f67b2f606eb47a Mon Sep 17 00:00:00 2001 From: lancebord Date: Mon, 9 Mar 2026 13:59:23 -0400 Subject: have password prompt instead of arg for more security --- src/main.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index f66ce13..aead1fd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,6 +9,7 @@ use crossterm::{ }; use futures::StreamExt; use ratatui::{Terminal, backend::CrosstermBackend}; +use scanpw::scanpw; use std::io; use std::net::ToSocketAddrs; use tokio::sync::mpsc; @@ -34,9 +35,6 @@ struct Args { #[arg(short, long, default_value_t = String::from("speakez"))] realname: String, - - #[arg(short, long, default_value_t = String::new())] - pass: String, } enum AppEvent { @@ -46,6 +44,8 @@ enum AppEvent { #[tokio::main] async fn main() -> Result<(), Box> { + let password = scanpw!("Password (leave blank for no pass): "); + enable_raw_mode()?; let mut stdout = io::stdout(); execute!(stdout, EnterAlternateScreen, EnableMouseCapture)?; @@ -53,7 +53,7 @@ async fn main() -> Result<(), Box> { let mut terminal = Terminal::new(backend)?; terminal.clear()?; - let result = run(&mut terminal).await; + let result = run(&mut terminal, password).await; disable_raw_mode()?; execute!( @@ -68,6 +68,7 @@ async fn main() -> Result<(), Box> { async fn run( terminal: &mut Terminal>, + password: String, ) -> Result<(), Box> { let mut app = AppState::new(); @@ -76,9 +77,9 @@ async fn run( return Err("Error: could not resolve server".into()); } - let password = match args.pass.as_str() { + let password = match password.as_str() { "" => None, - _ => Some(args.pass), + _ => Some(password), }; // Connect to IRC -- cgit v1.2.3-59-g8ed1b