From 1afd271a1332dcd3cc9801242b2dff1a5563b0d5 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Wed, 13 Nov 2019 22:51:57 +0900 Subject: [PATCH] check whether args is valid whether args days is in valid_days and args category is in valid_categories --- Library/Homebrew/cmd/info.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 1e29f7a30a..384852de37 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -357,6 +357,8 @@ module Homebrew end def output_formula_analytics(f) + valid_days = %w[30 90 365] + valid_categories = %w[install install-on-request build-error] json = formulae_api_json("formula/#{f}.json") return if json.blank? || json["analytics"].blank? @@ -369,8 +371,15 @@ module Homebrew value.each do |days, results| days = days.to_i if full_analytics - next if args.days.present? && args.days&.to_i != days - next if args.category.present? && args.category != category + if args.days.present? + raise UsageError, "day must be one of #{valid_days.join(", ")}" unless valid_days.include?(args.days) + next if args.days&.to_i != days + end + + if args.category.present? + raise UsageError, "category must be one of #{valid_categories.join(", ")}" unless valid_categories.include?(args.category) + next if args.category.gsub('-','_') != category + end analytics_table(category, days, results) else