Sha256: 83809d2b1de50cca2ce763ff2decae36b392c76d762b2b32ecbb0f0610d69822

Contents?: true

Size: 1.05 KB

Versions: 13

Compression:

Stored size: 1.05 KB

Contents

require 'knife-spork/plugins/plugin'

module KnifeSpork
  module Plugins
    class Campfire < Plugin
      name :campfire

      def perform; end

      def after_upload
        campfire do |rooms|
          rooms.paste <<-EOH
#{current_user} froze the following cookbooks on Chef Server:
#{cookbooks.collect{|c| "  #{c.name}@#{c.version}"}.join("\n")}
EOH
        end
      end

      def after_promote_remote
        campfire do |rooms|
          rooms.paste <<-EOH
#{current_user} promoted cookbooks on Chef Server:

cookbooks:
#{cookbooks.collect{|c| "  #{c.name}@#{c.version}"}.join("\n")}

environments:
#{environments.collect{|e| "  #{e.name}"}.join("\n")}
EOH
        end
      end

      private
      def campfire(&block)
        safe_require 'tinder'

        rooms = [config.rooms || config.room].flatten.compact
        campfire = Tinder::Campfire.new(config.account, :token => config.token)

        rooms.each do |room_name|
          room = campfire.find_room_by_name(room_name)
          yield(room) unless room.nil?
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
knife-spork-1.0.13 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.12 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.10 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.9 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.8 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.7 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.6 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.5 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.4 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.3 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.2 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.1 lib/knife-spork/plugins/campfire.rb
knife-spork-1.0.0 lib/knife-spork/plugins/campfire.rb