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.