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