Skip to content
Snippets Groups Projects
Unverified Commit 1ebb1c28 authored by Mike McQuaid's avatar Mike McQuaid Committed by GitHub
Browse files

Merge pull request #7580 from tharun208/brew-cask-analytics

Added analytics for cask info
parents b2fc8ad7 aeede837
No related branches found
No related tags found
No related merge requests found
......@@ -46,6 +46,7 @@ module Cask
def self.info(cask)
puts get_info(cask)
::Utils::Analytics.cask_output(cask)
end
def self.title_info(cask)
......
......@@ -2,6 +2,7 @@
require_relative "shared_examples/requires_cask_token"
require_relative "shared_examples/invalid_option"
require "utils"
describe Cask::Cmd::Info, :cask do
it_behaves_like "a command that requires a Cask token"
......@@ -139,7 +140,16 @@ describe Cask::Cmd::Info, :cask do
EOS
end
it "can run be run with a url twice", :needs_network do
it "can run be run with a url twice and returns analytics", :needs_network do
analytics = {
"analytics" => {
"install" => {
"30d" => { "docker" => 1000 }, "90d" => { "docker" => 2000 }, "365d" => { "docker" => 3000 }
},
},
}
expect(Utils::Analytics).to receive(:formulae_brew_sh_json).twice.with("cask/docker.json")
.and_return(analytics)
expect {
described_class.run("https://raw.githubusercontent.com/Homebrew/homebrew-cask" \
"/d0b2c58652ae5eff20a7a4ac93292a08b250912b/Casks/docker.rb")
......@@ -155,6 +165,8 @@ describe Cask::Cmd::Info, :cask do
Docker CE
==> Artifacts
Docker.app (App)
==> Analytics
install: 1,000 (30 days), 2,000 (90 days), 3,000 (365 days)
==> Downloading https://raw.githubusercontent.com/Homebrew/homebrew-cask/d0b2c58652ae5eff20a7a4ac93292a08b250912b/Casks/docker.rb.
docker: 2.0.0.2-ce-mac81,30215 (auto_updates)
https://www.docker.com/community-edition
......@@ -164,6 +176,8 @@ describe Cask::Cmd::Info, :cask do
Docker CE
==> Artifacts
Docker.app (App)
==> Analytics
install: 1,000 (30 days), 2,000 (90 days), 3,000 (365 days)
EOS
end
end
......@@ -119,7 +119,7 @@ module Utils
def output(filter: nil)
days = Homebrew.args.days || "30"
category = Homebrew.args.category || "install"
json = formulae_api_json("analytics/#{category}/#{days}d.json")
json = formulae_brew_sh_json("analytics/#{category}/#{days}d.json")
return if json.blank? || json["items"].blank?
os_version = category == "os-version"
......@@ -147,10 +147,7 @@ module Utils
table_output(category, days, results, os_version: os_version, cask_install: cask_install)
end
def formula_output(f)
json = formulae_api_json("#{formula_path}/#{f}.json")
return if json.blank? || json["analytics"].blank?
def get_analytics(json)
full_analytics = Homebrew.args.analytics? || Homebrew.args.verbose?
ohai "Analytics"
......@@ -179,6 +176,20 @@ module Utils
end
end
def formula_output(f)
json = formulae_brew_sh_json("#{formula_path}/#{f}.json")
return if json.blank? || json["analytics"].blank?
get_analytics(json)
end
def cask_output(cask)
json = formulae_brew_sh_json("#{cask_path}/#{cask}.json")
return if json.blank? || json["analytics"].blank?
get_analytics(json)
end
def custom_prefix_label
"custom-prefix"
end
......@@ -307,7 +318,7 @@ module Utils
end
end
def formulae_api_json(endpoint)
def formulae_brew_sh_json(endpoint)
return if Homebrew::EnvConfig.no_analytics? || Homebrew::EnvConfig.no_github_api?
output, = curl_output("--max-time", "5",
......@@ -336,6 +347,10 @@ module Utils
"analytics"
end
alias generic_analytics_path analytics_path
def cask_path
"cask"
end
end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment