From 3058ed94abe3842a50c091dc1ad062b88bc9d497 Mon Sep 17 00:00:00 2001 From: Josh Hagins Date: Mon, 4 Jan 2016 17:21:56 -0500 Subject: [PATCH] Print error message with suggestions if header parse failed --- lib/hbc/cli.rb | 1 + lib/hbc/exceptions.rb | 3 +++ lib/hbc/source/path_base.rb | 2 +- test/cask/dsl_test.rb | 2 +- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/hbc/cli.rb b/lib/hbc/cli.rb index 5439fdc339..e78dcfca41 100644 --- a/lib/hbc/cli.rb +++ b/lib/hbc/cli.rb @@ -116,6 +116,7 @@ class Hbc::CLI run_command(command, *rest) rescue Hbc::CaskError, Hbc::CaskSha256MismatchError => e onoe e + puts Hbc::Utils.error_message_with_suggestions if e.is_a?(Hbc::CaskHeaderParseError) $stderr.puts e.backtrace if Hbc.debug exit 1 rescue StandardError, ScriptError, NoMemoryError => e diff --git a/lib/hbc/exceptions.rb b/lib/hbc/exceptions.rb index 58fd1c3af5..d957830e23 100644 --- a/lib/hbc/exceptions.rb +++ b/lib/hbc/exceptions.rb @@ -126,6 +126,9 @@ class Hbc::CaskInvalidError < Hbc::CaskError end end +class Hbc::CaskHeaderParseError < Hbc::CaskInvalidError +end + class Hbc::CaskSha256MissingError < ArgumentError end diff --git a/lib/hbc/source/path_base.rb b/lib/hbc/source/path_base.rb index 7ba75440ea..dd732db10e 100644 --- a/lib/hbc/source/path_base.rb +++ b/lib/hbc/source/path_base.rb @@ -55,7 +55,7 @@ class Hbc::Source::PathBase raise Hbc::CaskInvalidError.new(cask_token, "Bad header line: '#{header_token}' does not match file name") end else - raise Hbc::CaskInvalidError.new(cask_token, "Bad header line: parse failed") + raise Hbc::CaskHeaderParseError.new(cask_token, "Bad header line: parse failed") end # simulate "require" diff --git a/test/cask/dsl_test.rb b/test/cask/dsl_test.rb index 42c06a1899..c6db86cf39 100644 --- a/test/cask/dsl_test.rb +++ b/test/cask/dsl_test.rb @@ -48,7 +48,7 @@ describe Hbc::DSL do it "requires a valid header format" do err = lambda { invalid_cask = Hbc.load('invalid/invalid-header-format') - }.must_raise(Hbc::CaskInvalidError) + }.must_raise(Hbc::CaskHeaderParseError) err.message.must_include 'Bad header line: parse failed' end