aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/dev-cmd/tap-new.rb80
-rw-r--r--Library/Homebrew/dev-cmd/tap-readme.rb37
-rw-r--r--Library/Homebrew/test/test_tap_new.rb (renamed from Library/Homebrew/test/test_tap_readme.rb)5
3 files changed, 82 insertions, 40 deletions
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` <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
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`] <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
diff --git a/Library/Homebrew/test/test_tap_readme.rb b/Library/Homebrew/test/test_tap_new.rb
index 1181c3ffc..636024b0a 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/<formula>",
- 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