(args: &[String], cwd: &Path)
| 177 | }) |
| 178 | } |
| 179 | |
| 180 | pub(crate) fn dlc_command(args: &[String], cwd: &Path) -> Result<(), String> { |
| 181 | let Some(raw_dlc_name) = parse_flag_value(args, "--name") else { |
| 182 | return Err("missing required flag `--name`".to_string()); |
| 183 | }; |
| 184 | let dlc_name = validate_dlc_name(&raw_dlc_name)?; |
| 185 | let project_dir = parse_flag_value(args, "--path") |
| 186 | .map(|p| resolve_local_path(&p, cwd)) |
| 187 | .unwrap_or_else(|| cwd.to_path_buf()); |
| 188 | let project_dir = project_dir.canonicalize().unwrap_or(project_dir); |
| 189 | update_workspace_vscode_linked_projects(&workspace_root(), &project_dir)?; |
| 190 | update_project_vscode_linked_projects(&project_dir)?; |
| 191 | |
| 192 | log_step("Building DLC"); |
| 193 | let package = compile_dlc_bundle(&project_dir, &dlc_name).map_err(|err| { |
| 194 | format!( |
| 195 | "dlc pipeline failed for {} ({}): {err}", |
| 196 | project_dir.display(), |
| 197 | dlc_name |
| 198 | ) |
| 199 | })?; |
| 200 | log_done(&format!("DLC Built ({})", package.display())); |
| 201 | Ok(()) |
| 202 | } |
| 203 | |
| 204 | pub(crate) fn dev_command(args: &[String], cwd: &Path) -> Result<(), String> { |
no test coverage detected