class Popper::Action::ExecCmd
Public Class Methods
action_name()
click to toggle source
# File lib/popper/action/exec_cmd.rb, line 25 def self.action_name :exec_cmd end
check_params()
click to toggle source
# File lib/popper/action/exec_cmd.rb, line 21 def self.check_params @action_config.respond_to?(:cmd) end
task(mail, params={})
click to toggle source
# File lib/popper/action/exec_cmd.rb, line 6 def self.task(mail, params={}) tmps = mail.attachments.map do |a| ::Tempfile.open(a.filename) do |f| f.write a.body.decoded f end end unless mail.attachments.empty? cmd = "#{@action_config.cmd} #{Shellwords.escape(mail.subject)} #{Shellwords.escape(mail.utf_body)} #{Shellwords.escape(mail.from.join(";"))} #{Shellwords.escape(mail.to.join(";"))}" cmd += " #{tmps.map {|t| Shellwords.escape(t.path) }.join(' ')}" if tmps && !tmps.empty? ::Bundler.with_clean_env do system(cmd) end params end