diff --git a/src/commands.rs b/src/commands.rs index f940e76cdf..e66a1b20b5 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -2,8 +2,8 @@ use crate::install::populate_data_dir; use crate::sessions::kill_session as kill_session_impl; use crate::sessions::{ assert_session, assert_session_ne, get_active_session, get_sessions, - get_sessions_sorted_by_creation_date, print_sessions, print_sessions_with_index, - session_exists, ActiveSession, + get_sessions_sorted_by_mtime, print_sessions, print_sessions_with_index, session_exists, + ActiveSession, }; use dialoguer::Confirm; use std::path::PathBuf; @@ -114,7 +114,7 @@ fn find_indexed_session( fn attach_with_session_index(config_options: Options, index: usize, create: bool) -> ClientInfo { // Ignore the session_name when `--index` is provided - match get_sessions_sorted_by_creation_date() { + match get_sessions_sorted_by_mtime() { Ok(sessions) if sessions.is_empty() => { if create { create_new_client() diff --git a/src/sessions.rs b/src/sessions.rs index 2d65925b06..b39818d7d4 100644 --- a/src/sessions.rs +++ b/src/sessions.rs @@ -27,24 +27,21 @@ pub(crate) fn get_sessions() -> Result, io::ErrorKind> { } } -pub(crate) fn get_sessions_sorted_by_creation_date() -> anyhow::Result> { +pub(crate) fn get_sessions_sorted_by_mtime() -> anyhow::Result> { match fs::read_dir(&*ZELLIJ_SOCK_DIR) { Ok(files) => { - let mut sessions_with_creation_date: Vec<(String, SystemTime)> = Vec::new(); + let mut sessions_with_mtime: Vec<(String, SystemTime)> = Vec::new(); for file in files { let file = file?; let file_name = file.file_name().into_string().unwrap(); - let file_created_at = file.metadata()?.created()?; + let file_modified_at = file.metadata()?.modified()?; if file.file_type()?.is_socket() && assert_socket(&file_name) { - sessions_with_creation_date.push((file_name, file_created_at)); + sessions_with_mtime.push((file_name, file_modified_at)); } } - sessions_with_creation_date.sort_by_key(|x| x.1); // the oldest one will be the first + sessions_with_mtime.sort_by_key(|x| x.1); // the oldest one will be the first - let sessions = sessions_with_creation_date - .iter() - .map(|x| x.0.clone()) - .collect(); + let sessions = sessions_with_mtime.iter().map(|x| x.0.clone()).collect(); Ok(sessions) } Err(err) if io::ErrorKind::NotFound != err.kind() => Err(err.into()),