aboutsummaryrefslogtreecommitdiff
path: root/src/cli
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli')
-rw-r--r--src/cli/runtime.rs11
-rw-r--r--src/cli/workspace.rs21
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]");
}