From 4f20ba205fd39268f206f142c8daa8b365c792a3 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sat, 29 Oct 2022 08:23:40 -0500 Subject: [PATCH] WIP: load multiple workspace files to same session name w/ --append --- src/tmuxp/cli/load.py | 18 +++++++++++++++--- tests/test_cli.py | 16 ++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/tmuxp/cli/load.py b/src/tmuxp/cli/load.py index 00dde4e0b1c..e68fdd22902 100644 --- a/src/tmuxp/cli/load.py +++ b/src/tmuxp/cli/load.py @@ -626,9 +626,21 @@ def command_load( detached = original_detached_option new_session_name = original_new_session_name - if last_idx > 0 and idx < last_idx: - detached = True - new_session_name = None + if last_idx > 0: + if idx < last_idx: + detached = True + new_session_name = None + if tmux_options["append"]: + original_session_name = None + if idx == 0: + original_session_name = ( + new_session_name + or config_reader.ConfigReader._from_file( + pathlib.Path(config_file) + ) + ) + elif idx > 0 and original_session_name is not None: + new_session_name = original_session_name load_workspace( workspace_file, diff --git a/tests/test_cli.py b/tests/test_cli.py index beb90d98fca..ea413aeaa7a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -286,6 +286,18 @@ class CLILoadFixture(t.NamedTuple): expected_in_out=None, expected_not_in_out=None, ), + CLILoadFixture( + test_id="configdir-session-name-double-append", + cli_args=["load", "my_config", "second_config", "--append"], + config_paths=[ + "{TMUXP_CONFIGDIR}/my_config.yaml", + "{TMUXP_CONFIGDIR}/second_config.yaml", + ], + session_names=["my_config", "second_config"], + expected_exit_code=0, + expected_in_out=None, + expected_not_in_out=None, + ), ] @@ -355,6 +367,10 @@ def test_load( for session_name in session_names: assert server.has_session(session_name) + if "--append" in cli_args: + for session_name in session_names[-1:]: + assert not server.has_session(session_name) + def test_regression_00132_session_name_with_dots( tmp_path: pathlib.Path,