Rename tap-readme command to tap-new.

Write the README but also a `.travis.yml` file (and in future perhaps a
`Jenkinsfile`).
This commit is contained in:
Mike McQuaid 2016-10-13 13:41:53 +01:00
parent 13276409a9
commit f435adc2d0
6 changed files with 87 additions and 45 deletions

View File

@ -0,0 +1,80 @@
#: * `tap-new` <user>`/`<repo>:
#: 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}/<formula>`
Or `brew tap #{tap}` and then `brew install <formula>`.
Or install via URL (which will not receive updates):
```
brew install https://raw.githubusercontent.com/#{tap.user}/homebrew-#{tap.repo}/master/Formula/<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

View File

@ -1,37 +0,0 @@
#: * `tap_readme` [`-v`] <name>:
#: 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}/<formula>`
Or `brew tap homebrew/#{name}` and then `brew install <formula>`.
Or install via URL (which will not receive updates):
```
brew install https://raw.githubusercontent.com/Homebrew/homebrew-#{name}/master/<formula>.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

View File

@ -1,9 +1,8 @@
require "helper/integration_command_test_case" require "helper/integration_command_test_case"
class IntegrationCommandTestTapReadme < IntegrationCommandTestCase class IntegrationCommandTestTapNew < IntegrationCommandTestCase
def test_tap_readme def test_tap_readme
assert_match "brew install homebrew/foo/<formula>", assert_equal "", cmd("tap-new", "homebrew/foo", "--verbose")
cmd("tap-readme", "foo", "--verbose")
readme = HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-foo/README.md" readme = HOMEBREW_LIBRARY/"Taps/homebrew/homebrew-foo/README.md"
assert readme.exist?, "The README should be created" assert readme.exist?, "The README should be created"
end end

View File

@ -442,7 +442,7 @@ _brew_tap_info() {
__brew_complete_tapped __brew_complete_tapped
} }
_brew_tap_readme() { _brew_tap_new() {
local cur="${COMP_WORDS[COMP_CWORD]}" local cur="${COMP_WORDS[COMP_CWORD]}"
case "$cur" in case "$cur" in
--*) --*)
@ -612,7 +612,7 @@ _brew() {
tap) _brew_tap ;; tap) _brew_tap ;;
tap-info) _brew_tap_info ;; tap-info) _brew_tap_info ;;
tap-pin) __brew_complete_tapped ;; tap-pin) __brew_complete_tapped ;;
tap-readme) _brew_tap_readme ;; tap-new) _brew_tap_new ;;
tap-unpin) _brew_tap_unpin ;; tap-unpin) _brew_tap_unpin ;;
test) __brew_complete_installed ;; test) __brew_complete_installed ;;
tests) _brew_tests ;; tests) _brew_tests ;;

View File

@ -567,7 +567,7 @@ Each &lt;patch-source> may be one of:
If <code>--no-publish</code> was passed, do not publish bottles to Bintray.</p> If <code>--no-publish</code> was passed, do not publish bottles to Bintray.</p>
<dl> <dl>
<dt><code>tap_readme</code> [<code>-v</code>] <var>name</var></dt><dd><p>Generate the README.md file for a new tap.</p></dd> <dt><code>tap-new</code> <var>user</var><code>/</code><var>repo</var></dt><dd><p>Generate the template files for a new tap.</p></dd>
<dt><code>test</code> [<code>--devel</code>|<code>--HEAD</code>] [<code>--debug</code>] [<code>--keep-tmp</code>] <var>formula</var></dt><dd><p>Most formulae provide a test method. <code>brew test</code> <var>formula</var> runs this <dt><code>test</code> [<code>--devel</code>|<code>--HEAD</code>] [<code>--debug</code>] [<code>--keep-tmp</code>] <var>formula</var></dt><dd><p>Most formulae provide a test method. <code>brew test</code> <var>formula</var> runs this
test method. There is no standard output or return code, but it should 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 generally indicate to the user if something is wrong with the installed

View File

@ -759,8 +759,8 @@ Each <patch\-source> 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\. 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 .TP
\fBtap_readme\fR [\fB\-v\fR] \fIname\fR \fBtap\-new\fR \fIuser\fR\fB/\fR\fIrepo\fR
Generate the README\.md file for a new tap\. Generate the template files for a new tap\.
. .
.TP .TP
\fBtest\fR [\fB\-\-devel\fR|\fB\-\-HEAD\fR] [\fB\-\-debug\fR] [\fB\-\-keep\-tmp\fR] \fIformula\fR \fBtest\fR [\fB\-\-devel\fR|\fB\-\-HEAD\fR] [\fB\-\-debug\fR] [\fB\-\-keep\-tmp\fR] \fIformula\fR