diff options
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/dev-cmd/tap-new.rb | 80 | ||||
| -rw-r--r-- | Library/Homebrew/dev-cmd/tap-readme.rb | 37 | ||||
| -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 |
