lib/knife-spork/plugins/irccat.rb in knife-spork-1.0.17 vs lib/knife-spork/plugins/irccat.rb in knife-spork-1.2.0

- old
+ new

@@ -3,21 +3,36 @@ module KnifeSpork module Plugins class Irccat < Plugin name :irccat + TEMPLATES = { + :upload => '#BOLD#PURPLECHEF:#NORMAL %{organization}%{current_user} uploaded #TEAL%{cookbooks}#NORMAL', + :promote => '#BOLD#PURPLECHEF:#NORMAL %{organization}%{current_user} promoted #TEAL%{cookbooks}#NORMAL to %{environment} %{gist}' + } + def perform; end def after_upload - irccat("#BOLD#PURPLECHEF:#NORMAL #{organization}#{current_user} uploaded #TEAL#{cookbooks.collect{ |c| "#{c.name}@#{c.version}" }.join(", ")}#NORMAL") + irccat(template(:upload) % { + :organization => organization, + :current_user => current_user, + :cookbooks => cookbooks.collect { |c| "#{c.name}@#{c.version}" }.join(", ") + }) end def after_promote_remote environments.each do |environment| diff = environment_diffs[environment.name] env_gist = gist(environment, diff) if config.gist - irccat("#BOLD#PURPLECHEF:#NORMAL #{organization}#{current_user} promoted #TEAL#{cookbooks.collect{ |c| "#{c.name}@#{c.version}" }.join(", ")}#NORMAL to #{environment.name} #{env_gist}") + irccat(template(:promote) % { + :organization => organization, + :current_user => current_user, + :cookbooks => cookbooks.collect{ |c| "#{c.name}@#{c.version}" }.join(", "), + :environment => environment.name, + :gist => env_gist + }) end end private def irccat(message) @@ -40,9 +55,13 @@ %x[ echo "#{msg}" | #{config.gist}] end def channels [ config.channel || config.channels ].flatten + end + + def template(name) + (config.template && config.template[name]) || TEMPLATES[name] end end end end