diff options
Diffstat (limited to 'src/cli')
| -rw-r--r-- | src/cli/runtime.rs | 11 | ||||
| -rw-r--r-- | src/cli/workspace.rs | 21 |
2 files changed, 16 insertions, 16 deletions
diff --git a/src/cli/runtime.rs b/src/cli/runtime.rs index 16d2d8b3..793ca24e 100644 --- a/src/cli/runtime.rs +++ b/src/cli/runtime.rs @@ -2,8 +2,8 @@ use crate::api::schema::{ EmptyParams, Method, PaneFocusDirectionParams, PaneInputSetParams, PaneMoveParams, PaneRenameParams, PaneResizeParams, PaneSplitParams, PaneSwapParams, PaneTarget, PaneZoomParams, Request, TabCreateParams, TabListParams, TabRenameParams, TabTarget, - WorkspaceCreateParams, WorkspaceRenameParams, WorkspaceTarget, WorktreeCreateParams, - WorktreeListParams, WorktreeOpenParams, WorktreeRemoveParams, + WorkspaceCloseParams, WorkspaceCreateParams, WorkspaceRenameParams, WorkspaceTarget, + WorktreeCreateParams, WorktreeListParams, WorktreeOpenParams, WorktreeRemoveParams, }; fn print_method_response(id: &'static str, method: Method) -> std::io::Result<i32> { @@ -42,11 +42,8 @@ pub(super) fn workspace_rename(params: WorkspaceRenameParams) -> std::io::Result print_method_response("cli:workspace:rename", Method::WorkspaceRename(params)) } -pub(super) fn workspace_close(workspace_id: String) -> std::io::Result<i32> { - print_method_response( - "cli:workspace:close", - Method::WorkspaceClose(WorkspaceTarget { workspace_id }), - ) +pub(super) fn workspace_close(params: WorkspaceCloseParams) -> std::io::Result<i32> { + print_method_response("cli:workspace:close", Method::WorkspaceClose(params)) } pub(super) fn tab_list(params: TabListParams) -> std::io::Result<i32> { diff --git a/src/cli/workspace.rs b/src/cli/workspace.rs index 525fc971..c24c9b73 100644 --- a/src/cli/workspace.rs +++ b/src/cli/workspace.rs @@ -225,16 +225,19 @@ fn workspace_report_metadata(args: &[String]) -> std::io::Result<i32> { } fn workspace_close(args: &[String]) -> std::io::Result<i32> { - let Some(raw_workspace_id) = args.first() else { - eprintln!("usage: herdr workspace close <workspace_id>"); - return Ok(2); + let (raw_workspace_id, close_group) = match args { + [workspace_id] => (workspace_id, false), + [workspace_id, flag] if flag == "--group" => (workspace_id, true), + _ => { + eprintln!("usage: herdr workspace close <workspace_id> [--group]"); + return Ok(2); + } }; - if args.len() != 1 { - eprintln!("usage: herdr workspace close <workspace_id>"); - return Ok(2); - } - super::runtime::workspace_close(super::normalize_workspace_id(raw_workspace_id)) + super::runtime::workspace_close(crate::api::schema::WorkspaceCloseParams { + workspace_id: super::normalize_workspace_id(raw_workspace_id), + close_group, + }) } fn print_workspace_help() { @@ -245,5 +248,5 @@ fn print_workspace_help() { eprintln!(" herdr workspace focus <workspace_id>"); eprintln!(" herdr workspace rename <workspace_id> <label>"); eprintln!(" herdr workspace report-metadata <workspace_id> --source ID [--token NAME=VALUE] [--clear-token NAME] [--seq N] [--ttl-ms N]"); - eprintln!(" herdr workspace close <workspace_id>"); + eprintln!(" herdr workspace close <workspace_id> [--group]"); } |
