Test if convert binary is available.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10014 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
537be80be2
commit
fe95692f10
|
@ -21,16 +21,18 @@ module Redmine
|
|||
module Thumbnail
|
||||
extend Redmine::Utils::Shell
|
||||
|
||||
CONVERT_BIN = (Redmine::Configuration['imagemagick_convert_command'] || 'convert').freeze
|
||||
|
||||
# Generates a thumbnail for the source image to target
|
||||
def self.generate(source, target, size)
|
||||
return nil unless convert_available?
|
||||
unless File.exists?(target)
|
||||
directory = File.dirname(target)
|
||||
unless File.exists?(directory)
|
||||
FileUtils.mkdir_p directory
|
||||
end
|
||||
bin = Redmine::Configuration['imagemagick_convert_command'] || 'convert'
|
||||
size_option = "#{size}x#{size}>"
|
||||
cmd = "#{shell_quote bin} #{shell_quote source} -thumbnail #{shell_quote size_option} #{shell_quote target}"
|
||||
cmd = "#{shell_quote CONVERT_BIN} #{shell_quote source} -thumbnail #{shell_quote size_option} #{shell_quote target}"
|
||||
unless system(cmd)
|
||||
logger.error("Creating thumbnail failed (#{$?}):\nCommand: #{cmd}")
|
||||
return nil
|
||||
|
@ -39,6 +41,14 @@ module Redmine
|
|||
target
|
||||
end
|
||||
|
||||
def self.convert_available?
|
||||
return @convert_available if defined?(@convert_available)
|
||||
logger.warn("testing for convert...")
|
||||
@convert_available = system("#{shell_quote CONVERT_BIN} -version") rescue false
|
||||
logger.warn("Imagemagick's convert binary (#{CONVERT_BIN}) not available") unless @convert_available
|
||||
@convert_available
|
||||
end
|
||||
|
||||
def self.logger
|
||||
Rails.logger
|
||||
end
|
||||
|
|
|
@ -129,10 +129,7 @@ class ActiveSupport::TestCase
|
|||
end
|
||||
|
||||
def self.convert_installed?
|
||||
bin = Redmine::Configuration['imagemagick_convert_command'] || 'convert'
|
||||
system("#{bin} -version")
|
||||
rescue
|
||||
false
|
||||
Redmine::Thumbnail.convert_available?
|
||||
end
|
||||
|
||||
# Returns the path to the test +vendor+ repository
|
||||
|
|
Loading…
Reference in New Issue