coliru

A minimal, flexible, dotfile installer
git clone https://git.ashermorgan.net/coliru/
Log | Files | Refs | README

commit 27b7fb5e0900b9f5457e7b1bd45d9a5ae81de09b
parent 6244aee4ff62a409c2a9163c094a096a79df6c2f
Author: Asher Morgan <59518073+ashermorgan@users.noreply.github.com>
Date:   Fri,  9 Aug 2024 14:59:07 -0700

Add filepath to manifest parsing error messages

Diffstat:
Msrc/cli.rs | 4+++-
Mtests/basic.rs | 8++++----
2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/cli.rs b/src/cli.rs @@ -83,7 +83,9 @@ fn run_args(args: Args) -> Result<bool> { } let manifest = parse_manifest_file(Path::new(&args.manifest)) - .context("Failed to parse manifest")?; + .with_context(|| { + format!("Failed to parse {}", args.manifest) + })?; if args.list_tags { list_tags(manifest); diff --git a/tests/basic.rs b/tests/basic.rs @@ -72,7 +72,7 @@ fn test_basic_empty_manifest() { cmd.args(["manifest.yml"]); write_file(&dirs.local.join("manifest.yml"), ""); - let expected = "Error: Failed to parse manifest: missing field `steps`\n"; + let expected = "Error: Failed to parse manifest.yml: missing field `steps`\n"; let (stdout, stderr, exitcode) = run_command(&mut cmd); assert_eq!(&stderr, expected); assert_eq!(&stdout, ""); @@ -85,8 +85,8 @@ fn test_basic_missing_manifest() { let (_dirs, mut cmd) = setup_e2e_local("test_basic_missing_manifest"); cmd.args(["missing.yml"]); - let expected = "Error: Failed to parse manifest: No such file or directory \ - (os error 2)\n"; + let expected = "Error: Failed to parse missing.yml: No such file or \ + directory (os error 2)\n"; let (stdout, stderr, exitcode) = run_command(&mut cmd); assert_eq!(&stderr, expected); assert_eq!(&stdout, ""); @@ -99,7 +99,7 @@ fn test_basic_missing_manifest() { let (_dirs, mut cmd) = setup_e2e_local("test_basic_missing_manifest"); cmd.args(["missing.yml"]); - let expected = "Error: Failed to parse manifest: The system cannot find \ + let expected = "Error: Failed to parse missing.yml: The system cannot find \ the file specified. (os error 2)\n"; let (stdout, stderr, exitcode) = run_command(&mut cmd); assert_eq!(&stderr, expected);