lib/lazylead/task/svn/diff.rb in lazylead-0.9.2 vs lib/lazylead/task/svn/diff.rb in lazylead-0.9.3
- old
+ new
@@ -25,12 +25,14 @@
require "zip"
require "tempfile"
require "nokogiri"
require "backtrace"
require "active_support/core_ext/hash/conversions"
+require_relative "../../os"
require_relative "../../salt"
require_relative "../../opts"
+require_relative "svn"
module Lazylead
module Task
module Svn
#
@@ -41,18 +43,16 @@
def initialize(log = Log.new)
@log = log
end
def run(_, postman, opts)
- cmd = [
- "svn log --diff --no-auth-cache",
- "--username #{opts.decrypt('svn_user', 'svn_salt')}",
- "--password #{opts.decrypt('svn_password', 'svn_salt')}",
- "-r#{opts['since_rev']}:HEAD #{opts['svn_url']}"
- ]
- stdout = `#{cmd.join(" ")}`
- stdout.scrub!
- send_email postman, opts.merge(stdout: stdout) unless stdout.blank?
+ stdout = OS.new.run "svn log --diff --no-auth-cache",
+ "--username #{opts.decrypt('svn_user', 'svn_salt')}",
+ "--password #{opts.decrypt('svn_password', 'svn_salt')}",
+ "-r#{opts['since_rev']}:HEAD #{opts['svn_url']}"
+ return if stdout.blank?
+ commits = Lazylead::Svn::Commits.new(stdout)
+ send_email postman, opts.merge(commits: commits) unless commits.empty?
end
# Send email with svn log as an attachment.
# The attachment won't be stored locally and we'll be removed once
# mail sent.