From ac9a96874e57d3beedbbe3be7dce889d8a16530e Mon Sep 17 00:00:00 2001 From: Troy McCabe Date: Sun, 11 Sep 2022 22:10:37 -0500 Subject: [PATCH] Adds `brew docs` to close #13834 --- Library/Homebrew/cmd/docs.rb | 24 ++++++++++++++++++++++++ Library/Homebrew/global.rb | 1 + Library/Homebrew/test/cmd/docs_spec.rb | 11 +++++++++++ 3 files changed, 36 insertions(+) create mode 100644 Library/Homebrew/cmd/docs.rb create mode 100644 Library/Homebrew/test/cmd/docs_spec.rb diff --git a/Library/Homebrew/cmd/docs.rb b/Library/Homebrew/cmd/docs.rb new file mode 100644 index 0000000000..14eecc05ac --- /dev/null +++ b/Library/Homebrew/cmd/docs.rb @@ -0,0 +1,24 @@ +# typed: true +# frozen_string_literal: true + +require "cli/parser" + +module Homebrew + extend T::Sig + + module_function + + sig { returns(CLI::Parser) } + def docs_args + Homebrew::CLI::Parser.new do + description <<~EOS + Open Homebrew's docs (https://docs.brew.sh) in a browser. + EOS + end + end + + sig { void } + def docs + exec_browser HOMEBREW_DOCS_WWW + end +end diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb index 1a11464f69..0f404ac482 100644 --- a/Library/Homebrew/global.rb +++ b/Library/Homebrew/global.rb @@ -45,6 +45,7 @@ HOMEBREW_REQUIRED_RUBY_VERSION = ENV.fetch("HOMEBREW_REQUIRED_RUBY_VERSION").fre HOMEBREW_PRODUCT = ENV.fetch("HOMEBREW_PRODUCT").freeze HOMEBREW_VERSION = ENV.fetch("HOMEBREW_VERSION").freeze HOMEBREW_WWW = "https://brew.sh" +HOMEBREW_DOCS_WWW = "https://docs.brew.sh" HOMEBREW_SYSTEM = ENV.fetch("HOMEBREW_SYSTEM").freeze HOMEBREW_PROCESSOR = ENV.fetch("HOMEBREW_PROCESSOR").freeze diff --git a/Library/Homebrew/test/cmd/docs_spec.rb b/Library/Homebrew/test/cmd/docs_spec.rb new file mode 100644 index 0000000000..eade3c152b --- /dev/null +++ b/Library/Homebrew/test/cmd/docs_spec.rb @@ -0,0 +1,11 @@ +# typed: false +# frozen_string_literal: true + +describe "brew docs" do + it "opens the docs page", :integration_test do + expect { brew "docs", "HOMEBREW_BROWSER" => "echo" } + .to output("https://docs.brew.sh\n").to_stdout + .and not_to_output.to_stderr + .and be_a_success + end +end