guard predicates are rake tasks, not functions
This commit is contained in:
88
rakefile
88
rakefile
@@ -510,51 +510,21 @@ end
|
||||
|
||||
# --- Internationalization tasks
|
||||
|
||||
# Make sure config file with username/password exists
|
||||
# Returns boolean: returns true if file exists and is nonzero length
|
||||
def validate_transifex_config()
|
||||
config_file = "#{Dir.home}/.transifexrc"
|
||||
if !File.file?(config_file) or File.size(config_file)==0
|
||||
raise "Cannot connect to Transifex, config file is missing or empty: #{config_file}\n" +
|
||||
"See http://help.transifex.com/features/client/#transifexrc\n"
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
# Make sure GNU gettext utilities are available
|
||||
# Returns boolean: returns true if utilities are available, else returns false
|
||||
def validate_gnu_gettext()
|
||||
begin
|
||||
select_executable('xgettext')
|
||||
return true
|
||||
rescue
|
||||
puts "Error:".red
|
||||
puts "Cannot locate GNU gettext utilities, which are required by django for internationalization.".red
|
||||
puts "(see https://docs.djangoproject.com/en/dev/topics/i18n/translation/#message-files)".red
|
||||
puts "Try downloading them from http://www.gnu.org/software/gettext/".red
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
namespace :i18n do
|
||||
|
||||
desc "Extract localizable strings from sources"
|
||||
task :extract do
|
||||
if validate_gnu_gettext()
|
||||
sh(File.join(REPO_ROOT, "i18n", "extract.py"))
|
||||
end
|
||||
Rake::Task["i18n:validate:gettext"].execute
|
||||
sh(File.join(REPO_ROOT, "i18n", "extract.py"))
|
||||
end
|
||||
|
||||
desc "Compile localizable strings from sources. With optional flag 'extract', will extract strings first."
|
||||
task :generate do
|
||||
if validate_gnu_gettext()
|
||||
if ARGV.last.downcase == 'extract'
|
||||
Rake::Task["i18n:extract"].execute
|
||||
end
|
||||
sh(File.join(REPO_ROOT, "i18n", "generate.py"))
|
||||
Rake::Task["i18n:validate:gettext"].execute
|
||||
if ARGV.last.downcase == 'extract'
|
||||
Rake::Task["i18n:extract"].execute
|
||||
end
|
||||
sh(File.join(REPO_ROOT, "i18n", "generate.py"))
|
||||
end
|
||||
|
||||
desc "Simulate international translation by generating dummy strings corresponding to source strings."
|
||||
@@ -567,30 +537,52 @@ namespace :i18n do
|
||||
end
|
||||
end
|
||||
|
||||
namespace :validate do
|
||||
|
||||
desc "Make sure GNU gettext utilities are available"
|
||||
task :gettext do
|
||||
begin
|
||||
select_executable('xgettext')
|
||||
rescue
|
||||
msg = "Cannot locate GNU gettext utilities, which are required by django for internationalization.\n"
|
||||
msg += "(see https://docs.djangoproject.com/en/dev/topics/i18n/translation/#message-files)\n"
|
||||
msg += "Try downloading them from http://www.gnu.org/software/gettext/"
|
||||
abort(msg.red)
|
||||
end
|
||||
end
|
||||
|
||||
desc "Make sure config file with username/password exists"
|
||||
task :transifex_config do
|
||||
config_file = "#{Dir.home}/.transifexrc"
|
||||
if !File.file?(config_file) or File.size(config_file)==0
|
||||
msg ="Cannot connect to Transifex, config file is missing or empty: #{config_file}\n"
|
||||
msg += "See http://help.transifex.com/features/client/#transifexrc"
|
||||
abort(msg.red)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
namespace :transifex do
|
||||
desc "Push source strings to Transifex for translation"
|
||||
task :push do
|
||||
if validate_transifex_config()
|
||||
cmd = File.join(REPO_ROOT, "i18n", "transifex.py")
|
||||
sh("#{cmd} push")
|
||||
end
|
||||
Rake::Task["i18n:validate:transifex_config"].execute
|
||||
cmd = File.join(REPO_ROOT, "i18n", "transifex.py")
|
||||
sh("#{cmd} push")
|
||||
end
|
||||
|
||||
desc "Pull translated strings from Transifex"
|
||||
task :pull do
|
||||
if validate_transifex_config()
|
||||
cmd = File.join(REPO_ROOT, "i18n", "transifex.py")
|
||||
sh("#{cmd} pull")
|
||||
end
|
||||
Rake::Task["i18n:validate:transifex_config"].execute
|
||||
cmd = File.join(REPO_ROOT, "i18n", "transifex.py")
|
||||
sh("#{cmd} pull")
|
||||
end
|
||||
end
|
||||
|
||||
desc "Run tests for the internationalization library"
|
||||
task :test do
|
||||
if validate_gnu_gettext()
|
||||
test = File.join(REPO_ROOT, "i18n", "tests")
|
||||
sh("nosetests #{test}")
|
||||
end
|
||||
Rake::Task["i18n:validate:gettext"].execute
|
||||
test = File.join(REPO_ROOT, "i18n", "tests")
|
||||
sh("nosetests #{test}")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user