build system: helper target for pulling from Transifex

This commit is contained in:
Moritz Bunkus 2016-02-21 11:23:13 +01:00
parent 3f02ad20de
commit 5d38913181
2 changed files with 26 additions and 4 deletions

View File

@ -500,6 +500,26 @@ EOT
adjust_to_poedit_style "#{name}.tmp", name, language
end
end
desc "Fetch program translations from Transifex and create comparison diffs"
task "transifex-apps" => $available_languages[:applications].map { |language| "translations:update:transifex-apps-#{language}" }
$available_languages[:applications].each do |language|
task "transifex-apps-#{language}" do
comparison_dir = "po/comparison"
ensure_dir comparison_dir
runq "GIT SHOW #{language}", "git show HEAD:po/#{language}.po > #{comparison_dir}/#{language}.po.tmp"
runq "MSGATTRIB #{language}", "msgattrib -o #{comparison_dir}/#{language}.po.mkvtoolnix --no-fuzzy --no-obsolete --translated #{comparison_dir}/#{language}.po.tmp"
runq " TX_PULL #{language}", "tx pull -f -r mkvtoolnix.programs -l #{language} > /dev/null"
runq "MSGATTRIB #{language}", "msgattrib -o #{comparison_dir}/#{language}.po.transifex --no-fuzzy --no-obsolete --translated po/#{language}.po"
runq " DIFF #{language}", "diff -u #{comparison_dir}/#{language}.po.mkvtoolnix #{comparison_dir}/#{language}.po.transifex > #{comparison_dir}/#{language}.po.diff", :allow_failure => true
FileUtils.rm FileList[ "#{comparison_dir}/#{language}.po.{tmp,mkvtoolnix,transifex}" ].to_a
end
end
end
[ :stats, :statistics ].each_with_index do |task_name, idx|

View File

@ -70,11 +70,13 @@ def runq(msg, cmdline, options = {})
run cmdline, options.clone.merge(:dont_echo => !verbose)
end
def ensure_dir dir
File.unlink(dir) if FileTest.exist?(dir) && !FileTest.directory?(dir)
Dir.mkdir(dir) if !FileTest.exist?(dir)
end
def create_dependency_dirs
[ $dependency_dir, $dependency_tmp_dir ].each do |dir|
File.unlink(dir) if FileTest.exist?(dir) && !FileTest.directory?(dir)
Dir.mkdir(dir) if !FileTest.exist?(dir)
end
[ $dependency_dir, $dependency_tmp_dir ].each { |dir| ensure_dir dir }
end
def dependency_output_name_for file_name