(slug: &str)
| 337 | } |
| 338 | |
| 339 | fn cmd_init(slug: &str) -> Result<()> { |
| 340 | validate_trace_id(slug) |
| 341 | .with_context(|| format!("slug `{}` is not a valid trace id", slug))?; |
| 342 | |
| 343 | let target = std::env::current_dir()?.join(slug); |
| 344 | if target.exists() { |
| 345 | anyhow::bail!("`{}` already exists", target.display()); |
| 346 | } |
| 347 | fs::create_dir(&target).with_context(|| format!("creating {}", target.display()))?; |
| 348 | |
| 349 | let trace = Trace::minimal(slug, slug, ""); |
| 350 | atomic_write_json(&target.join("trace.json"), "trace", &trace) |
| 351 | .with_context(|| format!("writing {}/trace.json", target.display()))?; |
| 352 | git::init(&target)?; |
| 353 | git::commit_files(&target, "initial commit", &["trace.json"])?; |
| 354 | println!("initialized {} ({})", target.display(), slug); |
| 355 | Ok(()) |
| 356 | } |
| 357 | |
| 358 | fn cmd_validate() -> Result<()> { |
| 359 | let root = trace_root_or_bail()?; |
no test coverage detected
searching dependent graphs…