class NcssCookbooks
Public Instance Methods
create(bucket_name)
click to toggle source
# File lib/ncss-cookbooks.rb, line 16 def create(bucket_name) ncss.buckets.create(bucket_name) end
upload(bucket_name)
click to toggle source
# File lib/ncss-cookbooks.rb, line 22 def upload(bucket_name) @pwd = Dir.pwd unless File.exists?("#{@pwd}/VERSION") || File.readble?("#{@pwd}/VERSION") abort "Error: VERSION file does not exists." end version = File.read("#{@pwd}/VERSION").chomp puts "Version is v#{version}" bucket = ncss.buckets[bucket_name] unless bucket.exists? abort "Error: Bucket #{bucket_name} does not exist." end object = bucket.objects["v#{version}/cookbooks.tgz"] Dir.mktmpdir('ncss-cookbooks-') do |dir| puts "Creating directory #{dir}/cookbooks/" FileUtils.mkdir_p("#{dir}/cookbooks/") puts "Copying files from #{@pwd} to #{dir}/cookbooks/" FileUtils.cp_r(pwd_files, "#{dir}/cookbooks/") puts "Archiving #{dir}/cookbooks/ to #{dir}/cookbooks.tgz" FileUtils.cd(dir) cookbooks_tgz = Zlib::GzipWriter.new(File.open("cookbooks.tgz", "wb")) Archive::Tar::Minitar.pack('cookbooks', cookbooks_tgz) if options[:verbose] puts "Archive includes:" system "tar tzvf cookbooks.tgz" end puts "Uploading #{dir}/cookbooks.tgz to bucket:#{bucket_name}, object:#{object.key}" object.write(:file => "cookbooks.tgz") object.acl = :public_read puts "Temporary directory #{dir} will be deleted automatically" end puts "Uploaded to " + object.url_for(:read).to_s.gsub(/\?(.+)$/, '') FileUtils.cd(@pwd) # release tmpdir for windows platform end
Private Instance Methods
ncss()
click to toggle source
# File lib/ncss-cookbooks.rb, line 66 def ncss # TODO: option for west-1 endpoint @ncss ||= AWS::S3.new( :access_key_id => options[:access_key_id] || ENV['ACCESS_KEY_ID'] || HighLine.new.ask('Access Key Id: '), :secret_access_key => options[:secret_access_key] || ENV['SECRET_ACCESS_KEY'] || HighLine.new.ask('Secret Access Key: '), :s3_endpoint => 'ncss.nifty.com', :proxy_uri => options[:http_proxy] || ENV['HTTP_PROXY'] || nil ) end
pwd_files()
click to toggle source
# File lib/ncss-cookbooks.rb, line 76 def pwd_files files = Dir["{#{@pwd}/*,#{@pwd}/.*}"] files.reject do |file| if FileTest.directory?(file) && %w(.git .svn).include?(File.basename(file)) puts " Excluded #{file}" true elsif %w(. ..).include?(File.basename(file)) true end end end