From 727f9671c7a7ef0644b931fda17c1d4467cd4eb6 Mon Sep 17 00:00:00 2001 From: Issy Long Date: Wed, 23 Oct 2019 21:24:08 +0100 Subject: [PATCH] info: show Linux formulae details and analytics - This makes use of the new /api/formula-linux and /api/analytics-linux endpoints in formulae.brew.sh to give Linux users up to date formula and analytics info for their installed core formulae. Before, on Linux, the macOS stats for the `ack` formula: ``` $ brew info ack [...] ==> Analytics install: 12,422 (30 days), 32,742 (90 days), 97,788 (365 days) install_on_request: 10,778 (30 days), 28,339 (90 days), 85,202 (365 days) build_error: 0 (30 days) ``` Now, on Linux, the Linux stats for the `ack` formula: ``` $ brew info ack [...] ==> Analytics install: 95 (30 days), 242 (90 days), 737 (365 days) install_on_request: 94 (30 days), 241 (90 days), 734 (365 days) build_error: 0 (30 days) ``` --- Library/Homebrew/cmd/info.rb | 14 +++++++++++++- Library/Homebrew/extend/os/cmd/info.rb | 3 +++ Library/Homebrew/extend/os/linux/info.rb | 17 +++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 Library/Homebrew/extend/os/cmd/info.rb create mode 100644 Library/Homebrew/extend/os/linux/info.rb diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 8fc8546dde..142e2fb20c 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -368,7 +368,7 @@ module Homebrew end def output_formula_analytics(f) - json = formulae_api_json("formula/#{f}.json") + json = formulae_api_json("#{formula_path}/#{f}.json") return if json.blank? || json["analytics"].blank? full_analytics = args.analytics? || args.verbose? @@ -431,4 +431,16 @@ module Homebrew def format_percent(percent) format("%.2f", percent: percent) end + + def formula_path + "formula" + end + alias_method :generic_formula_path, :formula_path + + def analytics_path + "analytics" + end + alias_method :generic_analytics_path, :analytics_path + + require "extend/os/cmd/info" end diff --git a/Library/Homebrew/extend/os/cmd/info.rb b/Library/Homebrew/extend/os/cmd/info.rb new file mode 100644 index 0000000000..b20d91f5e9 --- /dev/null +++ b/Library/Homebrew/extend/os/cmd/info.rb @@ -0,0 +1,3 @@ +# frozen_string_literal: true + +require "extend/os/linux/info" if OS.linux? diff --git a/Library/Homebrew/extend/os/linux/info.rb b/Library/Homebrew/extend/os/linux/info.rb new file mode 100644 index 0000000000..00bef2b7d6 --- /dev/null +++ b/Library/Homebrew/extend/os/linux/info.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Homebrew + module_function + + def formula_path + return generic_formula_path if ENV["HOMEBREW_FORCE_HOMEBREW_ON_LINUX"] + + "formula-linux" + end + + def analytics_path + return generic_analytics_path if ENV["HOMEBREW_FORCE_HOMEBREW_ON_LINUX"] + + "analytics-linux" + end +end