util/rake/gettextgenerate.rb in alexandria-book-collection-manager-0.7.1 vs util/rake/gettextgenerate.rb in alexandria-book-collection-manager-0.7.2

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + # -*- ruby -*- #-- # Copyright (C) 2009 Cathal Mc Ginley # # This file is part of the Alexandria build system. @@ -38,13 +40,11 @@ def make_task desc 'Generate gettext localization files' task gettext: @generated_files - if CLOBBER - @generated_files.each { |gen| CLOBBER << gen } - end + @generated_files.each { |gen| CLOBBER << gen } if CLOBBER end def generate_po_files(po_dir, file_glob, dest_dir) @po_dir = po_dir @po_files_glob = file_glob @@ -54,12 +54,12 @@ # create MO files rule(/\.mo$/ => [->(dest) { source_file(dest) }]) do |t| dest_dir = File.dirname(t.name) FileUtils.makedirs(dest_dir) unless FileTest.exists?(dest_dir) puts "Generating #{t.name}" - system("msgfmt #{t.source} -o #{t.name}") - raise "msgfmt failed for #{t.source}" if $CHILD_STATUS.nonzero? + result = system("msgfmt #{t.source} -o #{t.name}") + raise "msgfmt failed for #{t.source}" unless result end mo_files.each { |mo| @generated_files << mo } end def po_files @@ -67,12 +67,14 @@ end def generate_desktop(infile, outfile) @generated_files << outfile file outfile => [infile, *po_files] do |_f| - unless `intltool-merge --version` - raise Exception, 'Need to install intltool' + begin + `intltool-merge --version` + rescue Errno::ENOENT + raise 'Need to install intltool' end system("intltool-merge -d #{@po_dir} #{infile} #{outfile}") end end @@ -95,62 +97,5 @@ def source_file(dest_file) dest_file =~ @mo_files_regex po_file_for(Regexp.last_match[1]) end end - -# class GettextConfig < BuildConfig -# attr_accessor :po_dir, :po_files_glob -# attr_accessor :mo_dir, :mo_files_regex -# def initialize(build) -# super(build) -# @po_dir = 'po' -# @po_files_glob = "#{@po_dir}/*.po" -# @mo_dir = 'data/locale' -# @mo_files_regex = /.*\/(.+)\/LC_MESSAGES\/.+\.mo/ -# end -# def po_files -# FileList[po_files_glob] -# end -# def po_file_for(locale) -# "#{po_dir}/#{locale}.po" -# end -# def locales -# po_files.map { |po| File.basename(po).split('.')[0] } -# end -# def mo_files -# locales.map { |loc| mo_file_for(loc) } -# end -# def mo_file_for(locale) -# "#{mo_dir}/#{locale}/LC_MESSAGES/#{build.name}.mo" -# end -# def source_file(dest_file) -# dest_file =~ mo_files_regex -# po_file_for($1) -# end -# end - -# def define_gettext_tasks -# # extract translations from PO files into other files -# file files.desktop => ["#{files.desktop}.in", -# *@gettext.po_files] do |f| -# raise "Need to install intltool" unless system("intltool-merge -d #{@gettext.po_dir} #{f.name}.in #{f.name}") -# end - -# # create MO files -# rule( /\.mo$/ => [ lambda { |dest| @gettext.source_file(dest) }]) do |t| -# dest_dir = File.dirname(t.name) -# FileUtils.makedirs(dest_dir) unless FileTest.exists?(dest_dir) -# puts "Generating #{t.name}" -# system("msgfmt #{t.source} -o #{t.name}") -# raise "msgfmt failed for #{t.source}" if $? != 0 -# end - -# desc "Generate gettext localization files" -# task :gettext => [files.desktop, *@gettext.mo_files] - -# task :clobber_gettext do -# FileUtils.rm_f(files.desktop) -# FileUtils.rm_rf(@gettext.mo_dir) -# end -# task :clobber => [:clobber_gettext] -# end