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] name

Generate the README.md file for a new tap.

+
tap-new user/repo

Generate the template files for a new tap.

test [--devel|--HEAD] [--debug] [--keep-tmp] formula

Most 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