From f435adc2d00f4e5f91390de423f113168efe72ac Mon Sep 17 00:00:00 2001
From: Mike McQuaid
Date: Thu, 13 Oct 2016 13:41:53 +0100
Subject: 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 ---------------
Library/Homebrew/test/test_tap_new.rb | 9 ++++
Library/Homebrew/test/test_tap_readme.rb | 10 ----
completions/bash/brew | 4 +-
docs/brew.1.html | 2 +-
manpages/brew.1 | 4 +-
7 files changed, 94 insertions(+), 52 deletions(-)
create mode 100644 Library/Homebrew/dev-cmd/tap-new.rb
delete mode 100644 Library/Homebrew/dev-cmd/tap-readme.rb
create mode 100644 Library/Homebrew/test/test_tap_new.rb
delete mode 100644 Library/Homebrew/test/test_tap_readme.rb
diff --git a/Library/Homebrew/dev-cmd/tap-new.rb b/Library/Homebrew/dev-cmd/tap-new.rb
new file mode 100644
index 000000000..f469aa359
--- /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 cf5af85eb..000000000
--- 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_new.rb b/Library/Homebrew/test/test_tap_new.rb
new file mode 100644
index 000000000..636024b0a
--- /dev/null
+++ b/Library/Homebrew/test/test_tap_new.rb
@@ -0,0 +1,9 @@
+require "helper/integration_command_test_case"
+
+class IntegrationCommandTestTapNew < IntegrationCommandTestCase
+ def test_tap_readme
+ 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
+end
diff --git a/Library/Homebrew/test/test_tap_readme.rb b/Library/Homebrew/test/test_tap_readme.rb
deleted file mode 100644
index 1181c3ffc..000000000
--- a/Library/Homebrew/test/test_tap_readme.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-require "helper/integration_command_test_case"
-
-class IntegrationCommandTestTapReadme < IntegrationCommandTestCase
- def test_tap_readme
- assert_match "brew install homebrew/foo/",
- cmd("tap-readme", "foo", "--verbose")
- readme = HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-foo/README.md"
- assert readme.exist?, "The README should be created"
- end
-end
diff --git a/completions/bash/brew b/completions/bash/brew
index b1abe3855..03a05cb37 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 d9216665a..59c29cb3a 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 5e0a0faa1..ca98390a6 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
--
cgit v1.2.3