diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-07-16 17:37:24 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2012-07-16 17:37:24 +0000 |
commit | fe95692f10c98ee6ff4a2fcdd405d8474fc9bf5e (patch) | |
tree | c71b1e0da7aeaf1b5864d814deac67bd52f9df7a /lib/redmine/thumbnail.rb | |
parent | 537be80be26c38d5384d588873d2682fd908ee62 (diff) | |
download | redmine-fe95692f10c98ee6ff4a2fcdd405d8474fc9bf5e.tar.gz redmine-fe95692f10c98ee6ff4a2fcdd405d8474fc9bf5e.zip |
Test if convert binary is available.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10014 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib/redmine/thumbnail.rb')
-rw-r--r-- | lib/redmine/thumbnail.rb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/redmine/thumbnail.rb b/lib/redmine/thumbnail.rb index 2fa33a13f..c2a2a2eaa 100644 --- a/lib/redmine/thumbnail.rb +++ b/lib/redmine/thumbnail.rb @@ -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 |