From 7c37a8d9a6c6b68426fe8f69e12f5f7b1505c0f6 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 31 May 2023 11:26:32 +0300 Subject: Advise user to use *-type package manifest value when extension for *-file is not recognized --- libbpkg/manifest.cxx | 11 ++++++++++- tests/manifest/testscript | 17 +++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/libbpkg/manifest.cxx b/libbpkg/manifest.cxx index 152a513..aeb9b0e 100644 --- a/libbpkg/manifest.cxx +++ b/libbpkg/manifest.cxx @@ -4282,7 +4282,16 @@ namespace bpkg bad_value (string ("invalid ") + what + " type: " + e.what ()); } else - bad_value (string ("invalid ") + what + " file: " + e.what ()); + { + // Note that this can only happen due to inability to guess the + // type from the file extension. Let's help the user here a bit. + // + assert (r.file); + + bad_value (string ("invalid ") + what + " file: " + e.what () + + " (use " + string (n, 0, n.size () - 5) + + "-type manifest value to specify explicitly)"); + } } return r; diff --git a/tests/manifest/testscript b/tests/manifest/testscript index 4ad8f0e..7d808e3 100644 --- a/tests/manifest/testscript +++ b/tests/manifest/testscript @@ -488,7 +488,7 @@ license: LGPLv2 description-file: README.rtf EOI - stdin:6:19: error: invalid project description file: unknown text type + stdin:6:19: error: invalid project description file: unknown text type (use description-type manifest value to specify explicitly) EOE : ignore-unknown @@ -739,7 +739,7 @@ license: LGPLv2 package-description-file: README.rtf EOI - stdin:6:27: error: invalid package description file: unknown text type + stdin:6:27: error: invalid package description file: unknown text type (use package-description-type manifest value to specify explicitly) EOE : ignore-unknown @@ -935,6 +935,19 @@ %) EOE + : unknown-text-type + : + $* <>EOE != 0 + : 1 + name: libfoo + version: 2.0.0 + summary: Modern C++ parser + license: LGPLv2 + changes-file: CHANGES.0 + EOI + stdin:6:15: error: invalid changes file: unknown text type (use changes-type manifest value to specify explicitly) + EOE + : different-type : $* <>EOE != 0 -- cgit v1.1