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:
parent
13276409a9
commit
f435adc2d0
80
Library/Homebrew/dev-cmd/tap-new.rb
Normal file
80
Library/Homebrew/dev-cmd/tap-new.rb
Normal 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
|
@ -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
|
|
@ -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
|
@ -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 ;;
|
||||||
|
@ -567,7 +567,7 @@ Each <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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user