Knife-Zero doesn't include Berkshelf support, so vendoring everything in the repo is convenient again
		
			
				
	
	
		
			42 lines
		
	
	
		
			985 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			985 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # -*- ruby -*-
 | |
| 
 | |
| require 'rubygems'
 | |
| require 'bundler/setup'
 | |
| 
 | |
| require 'shellwords'
 | |
| 
 | |
| class Cookbook < Thor
 | |
|   COOKBOOK_NAME = 'hostname'.freeze
 | |
|   COOKBOOK_CATEGORY = 'utilities'.freeze
 | |
| 
 | |
|   include Thor::Actions
 | |
| 
 | |
|   desc :edit, 'Edit cookbook in browser'
 | |
|   def edit
 | |
|     open "http://community.opscode.com/cookbooks/#{COOKBOOK_NAME}/edit"
 | |
|   end
 | |
| 
 | |
|   desc :browse, "Go to cookbook's page on Opscode's community website"
 | |
|   def browse
 | |
|     open "http://community.opscode.com/cookbooks/#{COOKBOOK_NAME}/"
 | |
|   end
 | |
| 
 | |
|   desc :upload, "Upload cookbook to Opscode's community website"
 | |
|   def upload
 | |
|     run "knife cookbook site share #{COOKBOOK_NAME} #{Shellwords.escape(COOKBOOK_CATEGORY)} -o #{Shellwords.escape(File.dirname(File.dirname(__FILE__)))}"
 | |
|   end
 | |
| 
 | |
|   private
 | |
| 
 | |
|   def open(what)
 | |
|     run "#{open_cmd} #{Shellwords.escape(what)}"
 | |
|   end
 | |
| 
 | |
|   def open_cmd
 | |
|     @open_cmd ||= %w[open xdg-open].find do |command|
 | |
|       system "which #{command} >/dev/null 2>&1"
 | |
|       $CHILD_STATUS.success?
 | |
|     end
 | |
|   end
 | |
| end
 |