81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			81 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | #:  * `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 |