From f435adc2d00f4e5f91390de423f113168efe72ac Mon Sep 17 00:00:00 2001
From: Mike McQuaid
Date: Thu, 13 Oct 2016 13:41:53 +0100
Subject: [PATCH] Rename tap-readme command to tap-new.
Write the README but also a `.travis.yml` file (and in future perhaps a
`Jenkinsfile`).
---
Library/Homebrew/dev-cmd/tap-new.rb | 80 +++++++++++++++++++
Library/Homebrew/dev-cmd/tap-readme.rb | 37 ---------
.../{test_tap_readme.rb => test_tap_new.rb} | 5 +-
completions/bash/brew | 4 +-
docs/brew.1.html | 2 +-
manpages/brew.1 | 4 +-
6 files changed, 87 insertions(+), 45 deletions(-)
create mode 100644 Library/Homebrew/dev-cmd/tap-new.rb
delete mode 100644 Library/Homebrew/dev-cmd/tap-readme.rb
rename Library/Homebrew/test/{test_tap_readme.rb => test_tap_new.rb} (53%)
diff --git a/Library/Homebrew/dev-cmd/tap-new.rb b/Library/Homebrew/dev-cmd/tap-new.rb
new file mode 100644
index 0000000000..f469aa3591
--- /dev/null
+++ b/Library/Homebrew/dev-cmd/tap-new.rb
@@ -0,0 +1,80 @@
+#: * `tap-new` `/`:
+#: Generate the template files for a new tap.
+
+require "tap"
+
+module Homebrew
+ module_function
+
+ def write_path(tap, filename, content)
+ path = tap.path/filename
+ tap.path.mkpath
+ raise "#{path} already exists" if path.exist?
+ path.write content
+ end
+
+ def tap_new
+ raise "A tap argument is required" if ARGV.named.empty?
+
+ tap = Tap.fetch(ARGV.named.first)
+ titleized_user = tap.user.dup
+ titleized_repo = tap.repo.dup
+ titleized_user[0] = titleized_user[0].upcase
+ titleized_repo[0] = titleized_repo[0].upcase
+
+ (tap.path/"Formula").mkpath
+
+ readme = <<-EOS.undent
+ # #{titleized_user} #{titleized_repo}
+
+ ## How do I install these formulae?
+ `brew install #{tap}/`
+
+ Or `brew tap #{tap}` and then `brew install `.
+
+ Or install via URL (which will not receive updates):
+
+ ```
+ brew install https://raw.githubusercontent.com/#{tap.user}/homebrew-#{tap.repo}/master/Formula/.rb
+ ```
+
+ ## Documentation
+ `brew help`, `man brew` or check [Homebrew's documentation](https://github.com/Homebrew/brew/tree/master/docs#readme).
+ EOS
+ write_path(tap, "README.md", readme)
+
+ travis = <<-EOS.undent
+ language: ruby
+ os: osx
+ env: OSX=10.11
+ osx_image: xcode7.3
+ rvm: system
+
+ before_install:
+ - export TRAVIS_COMMIT="$(git rev-parse --verify -q HEAD)"
+ - if [ -f ".git/shallow" ]; then
+ travis_retry git fetch --unshallow;
+ fi
+ - sudo chown -R $USER "$(brew --repo)"
+ - git -C "$(brew --repo)" reset --hard origin/master
+ - git -C "$(brew --repo)" clean -qxdff
+ - brew update || brew update
+ - rm -rf "$(brew --repo $TRAVIS_REPO_SLUG)"
+ - mkdir -p "$(brew --repo $TRAVIS_REPO_SLUG)"
+ - rsync -az "$TRAVIS_BUILD_DIR/" "$(brew --repo $TRAVIS_REPO_SLUG)"
+ - export TRAVIS_BUILD_DIR="$(brew --repo $TRAVIS_REPO_SLUG)"
+ - cd "$(brew --repo)"
+ - export HOMEBREW_DEVELOPER="1"
+ - ulimit -n 1024
+
+ script:
+ - brew test-bot
+
+ notifications:
+ email:
+ on_success: never
+ on_failure: always
+ EOS
+ write_path(tap, ".travis.yml", travis)
+ end
+end
diff --git a/Library/Homebrew/dev-cmd/tap-readme.rb b/Library/Homebrew/dev-cmd/tap-readme.rb
deleted file mode 100644
index cf5af85ebc..0000000000
--- a/Library/Homebrew/dev-cmd/tap-readme.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-#: * `tap_readme` [`-v`] :
-#: Generate the README.md file for a new tap.
-
-module Homebrew
- module_function
-
- def tap_readme
- name = ARGV.first
- raise "A name is required" if name.nil?
-
- titleized_name = name.dup
- titleized_name[0..0] = titleized_name[0..0].upcase
-
- template = <<-EOS.undent
- # Homebrew #{titleized_name}
-
- ## How do I install these formulae?
- `brew install homebrew/#{name}/`
-
- Or `brew tap homebrew/#{name}` and then `brew install `.
-
- Or install via URL (which will not receive updates):
-
- ```
- brew install https://raw.githubusercontent.com/Homebrew/homebrew-#{name}/master/.rb
- ```
-
- ## Documentation
- `brew help`, `man brew` or check [Homebrew's documentation](https://github.com/Homebrew/brew/tree/master/docs#readme).
- EOS
-
- puts template if ARGV.verbose?
- path = HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-#{name}/README.md"
- raise "#{path} already exists" if path.exist?
- path.write template
- end
-end
diff --git a/Library/Homebrew/test/test_tap_readme.rb b/Library/Homebrew/test/test_tap_new.rb
similarity index 53%
rename from Library/Homebrew/test/test_tap_readme.rb
rename to Library/Homebrew/test/test_tap_new.rb
index 1181c3ffc5..636024b0aa 100644
--- a/Library/Homebrew/test/test_tap_readme.rb
+++ b/Library/Homebrew/test/test_tap_new.rb
@@ -1,9 +1,8 @@
require "helper/integration_command_test_case"
-class IntegrationCommandTestTapReadme < IntegrationCommandTestCase
+class IntegrationCommandTestTapNew < IntegrationCommandTestCase
def test_tap_readme
- assert_match "brew install homebrew/foo/",
- cmd("tap-readme", "foo", "--verbose")
+ assert_equal "", cmd("tap-new", "homebrew/foo", "--verbose")
readme = HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-foo/README.md"
assert readme.exist?, "The README should be created"
end
diff --git a/completions/bash/brew b/completions/bash/brew
index b1abe3855a..03a05cb37d 100644
--- a/completions/bash/brew
+++ b/completions/bash/brew
@@ -442,7 +442,7 @@ _brew_tap_info() {
__brew_complete_tapped
}
-_brew_tap_readme() {
+_brew_tap_new() {
local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in
--*)
@@ -612,7 +612,7 @@ _brew() {
tap) _brew_tap ;;
tap-info) _brew_tap_info ;;
tap-pin) __brew_complete_tapped ;;
- tap-readme) _brew_tap_readme ;;
+ tap-new) _brew_tap_new ;;
tap-unpin) _brew_tap_unpin ;;
test) __brew_complete_installed ;;
tests) _brew_tests ;;
diff --git a/docs/brew.1.html b/docs/brew.1.html
index d9216665ad..59c29cb3a4 100644
--- a/docs/brew.1.html
+++ b/docs/brew.1.html
@@ -567,7 +567,7 @@ Each <patch-source> may be one of:
If --no-publish was passed, do not publish bottles to Bintray.
-tap_readme [-v] nameGenerate the README.md file for a new tap.
+tap-new user/repoGenerate the template files for a new tap.
test [--devel|--HEAD] [--debug] [--keep-tmp] formulaMost formulae provide a test method. brew test formula runs this
test method. There is no standard output or return code, but it should
generally indicate to the user if something is wrong with the installed
diff --git a/manpages/brew.1 b/manpages/brew.1
index 5e0a0faa15..ca98390a69 100644
--- a/manpages/brew.1
+++ b/manpages/brew.1
@@ -759,8 +759,8 @@ Each may be one of:
If \fB\-\-bottle\fR was passed, handle bottles, pulling the bottle\-update commit and publishing files on Bintray\. If \fB\-\-bump\fR was passed, for one\-formula PRs, automatically reword commit message to our preferred format\. If \fB\-\-clean\fR was passed, do not rewrite or otherwise modify the commits found in the pulled PR\. If \fB\-\-ignore\-whitespace\fR was passed, silently ignore whitespace discrepancies when applying diffs\. If \fB\-\-resolve\fR was passed, when a patch fails to apply, leave in progress and allow user to resolve, instead of aborting\. If \fB\-\-branch\-okay\fR was passed, do not warn if pulling to a branch besides master (useful for testing)\. If \fB\-\-no\-pbcopy\fR was passed, do not copy anything to the system If \fB\-\-no\-publish\fR was passed, do not publish bottles to Bintray\.
.
.TP
-\fBtap_readme\fR [\fB\-v\fR] \fIname\fR
-Generate the README\.md file for a new tap\.
+\fBtap\-new\fR \fIuser\fR\fB/\fR\fIrepo\fR
+Generate the template files for a new tap\.
.
.TP
\fBtest\fR [\fB\-\-devel\fR|\fB\-\-HEAD\fR] [\fB\-\-debug\fR] [\fB\-\-keep\-tmp\fR] \fIformula\fR