From 4eeb45b94ed28e2a8b964d14882c15d3e2fb57ff Mon Sep 17 00:00:00 2001 From: yuyi Date: Sat, 8 Oct 2022 16:33:49 +0800 Subject: [PATCH] vpm: stop and output an error message after parsing the v.mod file failed (#15994) --- cmd/tools/vpm.v | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/tools/vpm.v b/cmd/tools/vpm.v index 7a453c57e6..f639b72e57 100644 --- a/cmd/tools/vpm.v +++ b/cmd/tools/vpm.v @@ -301,7 +301,10 @@ fn vpm_install_from_vcs(module_names []string, vcs_key string) { vmod_path := os.join_path(final_module_path, 'v.mod') if os.exists(vmod_path) { data := os.read_file(vmod_path) or { return } - vmod := parse_vmod(data) + vmod := parse_vmod(data) or { + eprintln(err) + return + } minfo := mod_name_info(vmod.name) println('Relocating module from "$name" to "$vmod.name" ( "$minfo.final_module_path" ) ...') if os.exists(minfo.final_module_path) { @@ -641,7 +644,10 @@ fn resolve_dependencies(name string, module_path string, module_names []string) return } data := os.read_file(vmod_path) or { return } - vmod := parse_vmod(data) + vmod := parse_vmod(data) or { + eprintln(err) + return + } mut deps := []string{} // filter out dependencies that were already specified by the user for d in vmod.deps { @@ -656,8 +662,8 @@ fn resolve_dependencies(name string, module_path string, module_names []string) } } -fn parse_vmod(data string) Vmod { - manifest := vmod.decode(data) or { vmod.Manifest{} } +fn parse_vmod(data string) !Vmod { + manifest := vmod.decode(data) or { return error('Parsing v.mod file failed, $err') } mut vmod := Vmod{} vmod.name = manifest.name vmod.version = manifest.version