11//! Close command implementation - manage active sessions
22
3+ use crate :: cli:: utils:: confirm;
34use crate :: config:: AppConfig ;
45use crate :: database:: Database ;
5- use crate :: cli:: utils:: confirm;
66use anyhow:: Result ;
77use nix:: sys:: signal:: { kill, Signal } ;
88use nix:: unistd:: Pid ;
@@ -43,17 +43,26 @@ fn list_active_sessions(db: &Database) -> Result<()> {
4343 }
4444
4545 println ! ( "📋 Active Sessions\n " ) ;
46- println ! ( "{:<20} {:<10} {:<25} DURATION" , "CONNECTION" , "PID" , "STARTED" ) ;
46+ println ! (
47+ "{:<20} {:<10} {:<25} DURATION" ,
48+ "CONNECTION" , "PID" , "STARTED"
49+ ) ;
4750 println ! ( "{}" , "─" . repeat( 70 ) ) ;
4851
4952 for ( conn_name, pid, started_at) in & sessions {
5053 let duration = chrono:: Utc :: now ( ) . signed_duration_since ( * started_at) ;
5154 let duration_str = format_duration ( duration) ;
52- let pid_str = pid. map ( |p| p. to_string ( ) ) . unwrap_or_else ( || "-" . to_string ( ) ) ;
53-
55+ let pid_str = pid
56+ . map ( |p| p. to_string ( ) )
57+ . unwrap_or_else ( || "-" . to_string ( ) ) ;
58+
5459 // Check if process is actually running
5560 let status = if let Some ( p) = pid {
56- if is_process_running ( * p) { "🟢" } else { "⚠️ stale" }
61+ if is_process_running ( * p) {
62+ "🟢"
63+ } else {
64+ "⚠️ stale"
65+ }
5766 } else {
5867 "❓"
5968 } ;
@@ -86,7 +95,12 @@ fn close_session(db: &Database, target: &str, force: bool) -> Result<()> {
8695 for ( session_id, conn_name, pid, _) in sessions {
8796 if let Some ( p) = pid {
8897 if is_process_running ( p) {
89- if !force && !confirm ( & format ! ( "Close session for '{}' (PID {})?" , conn_name, p) , true ) ? {
98+ if !force
99+ && !confirm (
100+ & format ! ( "Close session for '{}' (PID {})?" , conn_name, p) ,
101+ true ,
102+ ) ?
103+ {
90104 println ! ( "Skipped." ) ;
91105 continue ;
92106 }
@@ -102,7 +116,10 @@ fn close_session(db: &Database, target: &str, force: bool) -> Result<()> {
102116 }
103117 } else {
104118 // Process not running, just update the record
105- println ! ( "⚠️ Session '{}' (PID {}) is stale, cleaning up..." , conn_name, p) ;
119+ println ! (
120+ "⚠️ Session '{}' (PID {}) is stale, cleaning up..." ,
121+ conn_name, p
122+ ) ;
106123 db. mark_session_terminated ( & session_id, -1 ) ?;
107124 }
108125 } else {
@@ -123,7 +140,12 @@ fn close_all_sessions(db: &Database, force: bool) -> Result<()> {
123140 return Ok ( ( ) ) ;
124141 }
125142
126- if !force && !confirm ( & format ! ( "Close all {} active sessions?" , sessions. len( ) ) , false ) ? {
143+ if !force
144+ && !confirm (
145+ & format ! ( "Close all {} active sessions?" , sessions. len( ) ) ,
146+ false ,
147+ ) ?
148+ {
127149 println ! ( "Cancelled." ) ;
128150 return Ok ( ( ) ) ;
129151 }
@@ -146,7 +168,10 @@ fn close_all_sessions(db: &Database, force: bool) -> Result<()> {
146168 // Mark all as terminated in DB
147169 db. mark_all_sessions_terminated ( ) ?;
148170
149- println ! ( "✅ Closed {} sessions, cleaned {} stale records" , closed, cleaned) ;
171+ println ! (
172+ "✅ Closed {} sessions, cleaned {} stale records" ,
173+ closed, cleaned
174+ ) ;
150175
151176 Ok ( ( ) )
152177}
0 commit comments