From 9c7fe3dcb9dcc1e451fca46e17da2650dff72157 Mon Sep 17 00:00:00 2001 From: Gautham Goli Date: Sat, 12 Jan 2019 18:52:07 +0530 Subject: [PATCH] cli_parser: Output help text on invalid option passed --- Library/Homebrew/cli_parser.rb | 7 ++++++- Library/Homebrew/test/cli_parser_spec.rb | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cli_parser.rb b/Library/Homebrew/cli_parser.rb index 56ca66be3..e487e8580 100644 --- a/Library/Homebrew/cli_parser.rb +++ b/Library/Homebrew/cli_parser.rb @@ -123,7 +123,12 @@ module Homebrew end def parse(cmdline_args = ARGV) - remaining_args = @parser.parse(cmdline_args) + begin + remaining_args = @parser.parse(cmdline_args) + rescue OptionParser::InvalidOption => e + puts generate_help_text + raise e + end check_constraint_violations Homebrew.args[:remaining] = remaining_args Homebrew.args.freeze diff --git a/Library/Homebrew/test/cli_parser_spec.rb b/Library/Homebrew/test/cli_parser_spec.rb index 891de621e..b26cf6b44 100644 --- a/Library/Homebrew/test/cli_parser_spec.rb +++ b/Library/Homebrew/test/cli_parser_spec.rb @@ -42,6 +42,10 @@ describe Homebrew::CLI::Parser do expect { parser.parse(["--random"]) }.to raise_error(OptionParser::InvalidOption, /--random/) end + it "outputs help text on failure" do + expect { parser.parse(["--random"]) }.to raise_error(OptionParser::InvalidOption, /Usage: brew/) + end + it "maps environment var to an option" do parser.parse([]) expect(Homebrew.args.pry?).to be true